Как экспортировать метаданные для одного контракта с svcutil.exe?
У меня есть два ServiceContracts, реализованных как интерфейсы. Я хочу экспортировать метаданные только для одного из них. Хитрость в том, что оба интерфейса реализованы одним и тем же классом. Поэтому я не думаю, что я могу использовать / исключить типы. Пожалуйста, включите пример синтаксиса при ответе. Спасибо!
РЕДАКТИРОВАТЬ: коллега недавно спросил меня, почему это необходимо. Причина в том, что первый ServiceContract предназначен для службы REST, для которой нет смысла экспортировать метаданные. Таким образом, я получаю два файла wsdl и xsd, которые различаются только потому, что к второму имени файла добавляется "1". Это усложняет инструментарий и добавляет больше беспорядка в выходной каталог.
Я добавил вознаграждение, чтобы попытаться вызвать интерес к этому вопросу.
1 ответ
Я создал класс Service Contract, реализующий 2 интерфейса, как вы описали.
namespace NS
{
[ServiceContract]
public interface IREST
{
[OperationContract]
string WorldHello(string name);
}
[ServiceContract]
public interface IInterface
{
[OperationContract]
string HelloWorld(string name);
}
public class CI2 : IREST, IInterface
{
public string WorldHello(string name)
{
return "World Hello: " + name;
}
public string HelloWorld(string name)
{
return "Hello World: " + name;
}
}
}
при нормальном запуске svcutil я получаю wsdl с методами из 2 интерфейсов
например, когда я запускаю svcutil с /excludeType:IREST, я получаю только методы IInterface.
svcutil /excludeType:NS.IREST ci2service.exe
Вы используете ту же конфигурацию? В таком случае /excludeType
работает.