У меня есть публичный интерфейс, автоматически сгенерированный bu svcutil:
[System.ServiceModel.ServiceContractAttribute(Namespace="...", ConfigurationName="...")]
public interface MyInterface
Затем у меня есть веб-служба asmx, наследующая его и работающая нормально. Я пытаюсь преобразовать его в WCF, но когда я инструментирую службу (в коде asmx.cs) с помощью ServiceContract:
[ServiceContract(Namespace = "...")]
public class MyService : MyInterface
Также я создал файл .svc и добавил параметр system.serviceModel в файл конфигурации. Цель состоит в том, чтобы перенести службу asmx в службу WCF.
У меня такая ошибка:
Класс обслуживания типа MyService определяет ServiceContract и наследует ServiceContract от типа MyInterface. Наследование контракта можно использовать только среди типов интерфейсов. Если класс отмечен атрибутом ServiceContractAttribute, он должен быть единственным типом в иерархии с атрибутом ServiceContractAttribute.
Служба asmx все еще работает нормально. Только .svc вызывает у меня проблемы. Мой вопрос в том, как это исправить. MyInterface - это интерфейс, поэтому я не понимаю, в чем проблема и почему у меня все равно возникает ошибка.
Примечание. Я не хочу изменять MyInterface, потому что он автоматически создается из svcutil из моей схемы wsdl, и я не хочу, чтобы этот интерфейс редактировался вручную. Вся идея состоит в том, чтобы типы сервисов автоматически генерировались из WSDL, и чтобы моя команда разработчиков экономила усилия при ручном редактировании.
Любая помощь приветствуется.