Можно ли использовать svcutil для повторного использования / исключения ссылочных типов, как в Visual Studio.
У меня есть несколько проектов, мои типы / датамодели хранятся в отдельных сборках, поэтому они могут использоваться другими проектами, не относящимися к wcf и т. Д. При обновлении ссылок в графическом интерфейсе Visual Studio все это прекрасно работает. Пока тип найден по обе стороны границы, он исключен из списка, определенного в прокси.
Как мне добиться того же, используя svcutil?
Более ясно, что я хочу сгенерировать прокси из dll, а не работающей службы, которая содержит контракт службы. В то же время я хочу кормить dll-файлы, содержащие общие типы, которые должны быть исключены из списка определенных в прокси.
Причина всего этого заключается в том, что мои проекты могут быть обновлены и построены на сервере сборки.
Edit:
Прежде всего, спасибо за ваш ответ и предложение параметров. Однако я не получаю svcutil повторного использования сборок, следуя вашим инструкциям.
Вот части файла .bat, который я сделал. Я исключил все флаги для генерации INotifyPropertyChanged и т. Д.
SET BACKENDROOT=C:\SomePath\Development\Backend\bin
SET DATAMODELSBASE=C:\SomePath\Development\DataModels\bin
SET COMMONBASE=C:\SomePath\Development\Common\bin
SET REFRENCED_ASSEMBLIES=/r:%DATAMODELSBASE%\Jall.DataModels.Consignment.dll
svcutil %BACKENDROOT%\Jall.Backend.Consignment.DLL /t:metadata
svcutil /o:test.cs %REFRENCED_ASSEMBLIES% *.wsdl *.xsd
Результат выглядит следующим образом:
[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/KSD.DataModels.Consignment")]
public partial class ExtInvoice : OrmBase
{
private System.DateTime buyersOrderDateField;
private bool buyersOrderDateFieldSpecified;
private string buyersOrderNumberField;
private string compCodeField;
.....
А у клиента это само:
public Address CreateNewAddress(int TK, string AddressType)
Это неверно, модели данных генерируются непосредственно в прокси. Клиент не просто пропускает их и использует правильное пространство имен для типов. Правильный результат должен быть:
public Jall.DataModels.Consignment.Address CreateNewAddress(int TK, string AddressType)
(имена взбираются :))
Brgds,
Stian