Почему я не могу предоставить интерфейс в веб-сервисе .NET asmx?

У меня есть веб-сервис .NET (использующий asmx ... еще не обновлен до WCF), который предоставляет следующее:

public class WidgetVersion1 : IWidget {}
public class WidgetVersion2 : IWidget {}

Когда я пытаюсь привязаться к веб-сервису, я получаю следующую ошибку сериализации:

Невозможно сериализовать член WidgetVersion1 типа IWidget, потому что это интерфейс.

Я попытался добавить различные атрибуты в интерфейс IWidget (XmlIgnore, SoapIgnore, NonSerialized), но они не действительны для интерфейса.

Кто-нибудь знает, почему я не могу выставить интерфейс? Я предполагаю, что WSDL не поддерживает интерфейсы, но .NET не может обойти это, просто не сериализовав интерфейс? Есть ли способы обойти это, кроме удаления интерфейса IWidget из определений классов WidgetVersion1 и WidgetVersion2?

Ответы на вопрос(3)

Ваш ответ на вопрос