Friday, September 30, 2011

Проверка пренадлежности точки полигону

Появилась задача, понять, входит ли точка в полигон или нет.
На просторах интернета были найдены 2 прекрасных сайта с алгоритмами
http://delphid.dax.ru/www/exampl35.htm - написано на Pascal но переписать на другой язык не проблема. Однако в данной реализации, похоже, происходит ошибка если луч попадет в вершину полигона.
http://alienryderflex.com/polygon/ - реализация на с++. Похоже что работает правильно, плюс ко всему есть описание разных случаев.

Проверка пренадлежности точки полигону


Thursday, July 7, 2011

Перегруженные методы и веб- сервисы

Задание реализовать перегруженный метод.
Пишем как обычно
[WebMethod]
public void method (int a, int b)
{}
[WebMethod]
public void method(int a)
{}
Запускаем дебаг, и получаем ошибку

Both System.Data.DataTable GetDictionary(System.String) and System.Data.DataTable GetDictionary(System.String, System.String) use the message name 'GetDictionary'.  Use the MessageName property of the WebMethod custom attribute to specify unique message names for the methods.

Причину ошибки можно понять открыв http://<адрес вашего сервиса>/service1.asmx?WSDL.
У сообщений(message) которые посылает сервис одинаковое имя. 
Что бы исправить ошибку нужно добавить атрибуты:
[WebMethod(MessageName = "method2args",Description = "method with 2 args",EnableSession = true)]
public void method (int a, int b)
{}
[WebMethod(MessageName = "method1arg",Description = "method with 1 arg",EnableSession = true)]
public void method(int a)
{}
Если ваш сервис использует .net 2.0 и выше то вы все равно получите ошибку:

Service '<name of service>' does not conform to WS-I Basic Profile v1.1. Please examine each of the normative statement violations below.

 Нужно поправить еще 1 атрибут:
[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.None)]



Метод веб сервиса принемающий параметры с модификатором out