XML-RPC.NET не работает MappingAction.Error
От: v_k  
Дата: 17.11.14 08:33
Оценка:
Создаю веб-сервис XML-RPC. В серверном коде создаю структуру
[XmlRpcMissingMapping(MappingAction.Ignore)]
public struct proverka
{
[XmlRpcMissingMapping(MappingAction.Error)]
public int chislo;
public string stroka;
}

//и код обработчика:
public class Handler1 : XmlRpcService
{
[XmlRpcMethod("Test")]
public string MyService(proverka arg)
{
return "chislo=["+arg.chislo+"] stroka=["+arg.stroka+"]";
}
}

Далее запускаю сервис, отправляю ему следующий запрос:
<methodCall>
<methodName>Test</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>stroka</name>
<value><string>Hello!</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

И сервис почему-то даже не спотыкается на том, что не передан обязательный параметр chislo (отмеченный [XmlRpcMissingMapping(MappingAction.Error)]). Всё отрабатывает и возвращает строку chislo=[0] stroka=[Hello!]. То есть как-будто бы атрибут [XmlRpcMissingMapping(MappingAction.Error)] у поля chislo не указан вовсе.

На странице описания сервиса отображается всё правильно — stroka optional, chislo — нет.

Подскажите пожалуйста, что я делаю не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.