Мои сервисы должны анализировать SOAP-запрос для действия ILogging / LogMessage, в котором в качестве корневого элемента внутри тела SOAP есть 'log-entry'. Для этого у меня есть метод LogMessage, который ожидает параметр типа LogMessageRequest.
LogMessageRequest имеет атрибут MessageContract с WrapperName в качестве записи журнала:
[MessageContract(WrapperName = "log-entry")]
public class LogMessageRequest
{
...
}
Я также ожидаю еще один SOAP-запрос для действия ILogging / LogException с 'log-entry' в качестве корневого элемента в теле SOAP. Для этого есть метод LogException и параметр типа LogExceptionRequest.
Разница между обоими действиями SOAP заключается в том, что дочерний элемент 'message' внутри 'log-entry' отличается (для LogMessage 'message' является строкой и, за исключением, это сложная сущность).
Вопрос:
Поскольку и LogMessageRequest, и LogExceptionRequest имеют одинаковые имена оболочек (log-запись), я получаю исключение, происходящее из LogException, говорящее «log-запись уже экспортирована LogMessage».
Я попытался использовать один и тот же класс запросов для обоих и получить «сообщение» типа объекта. Но это отказывается работать.
Есть указатели? (кстати, нет возможности изменить запрос SOAP).