Почему я не могу предоставить интерфейс в веб-сервисе .NET asmx?
У меня есть веб-сервис .NET (использующий asmx ... еще не обновлен до WCF), который предоставляет следующее:
public class WidgetVersion1 : IWidget {}
public class WidgetVersion2 : IWidget {}
Когда я пытаюсь привязаться к веб-сервису, я получаю следующую ошибку сериализации:
Невозможно сериализовать член WidgetVersion1 типа IWidget, потому что это интерфейс.
Я попытался добавить различные атрибуты в интерфейс IWidget (XmlIgnore
, SoapIgnore
, NonSerialized
), но они не действительны для интерфейса.
Кто-нибудь знает, почему я не могу выставить интерфейс? Я предполагаю, что WSDL не поддерживает интерфейсы, но .NET не может обойти это, просто не сериализовав интерфейс? Есть ли способы обойти это, кроме удаления интерфейса IWidget из определений классов WidgetVersion1 и WidgetVersion2?