Я пишу некоторые сервисы .NET 2.0 ASMX. У меня есть сценарий, в котором мне нужно сгенерировать прокси-сервер веб-службы с помощью WSDL.exe, но сгенерированный класс не реализует интерфейс, поэтому я не могу подделать веб-службу для тестирования.
Вот один из подходов, которые я пробую, но на данный момент он не компилируется: я знаю, что WSDL.exe может генерировать интерфейсы с использованием опции /serverInterface
. В принципе, я хотел бы сгенерировать как Интерфейс, так и классы прокси следующим образом:
wsdl MyWebService.wsdl / nologo / l: CS
/namespace:Juliet.Services
/o:C:\projects\JulietService\MyWebServiceInterface.cs
/ ServerInterface
wsdl MyWebService.wsdl / nologo / l: CS
/namespace:Juliet.Services
/o:C:\projects\JulietService\MyWebServiceProxy.cs
Затем включите оба файла в мой проект. После этого я смогу извлечь свой собственный класс из сгенерированного прокси и реализовать сгенерированный интерфейс следующим образом:
public class MockableWebService : MyWebService, IMyWebServiceSoap11Binding
{
// No implementation, the interface is already implicitly implemented
// from the methods in the base class.
}
Это должно работать в принципе, , за исключением , и интерфейсные, и прокси-файлы автоматически генерируют одинаковые определения классов для моих сообщений запроса / ответа, что приводит к сотням ошибок типа The namespace 'Juliet.Services' already contains a definition for 'ABC'
.
Я хотел бы сохранить генерацию интерфейса / прокси-сервера как можно более автоматизированной - это означает, что я хочу избежать изменения сгенерированного кода вручную любой ценой.
Кто-нибудь может предложить способ создания интерфейса и прокси-сервера одновременно с WSDL.exe или лучший способ получить результаты, описанные выше?