Sdílet prostřednictvím


Generování klienta WCF z metadat služby

Toto téma popisuje, jak pomocí různých přepínačů v Svcutil.exe generovat klienty z dokumentů metadat.

Dokumenty metadat můžou být v trvalém úložišti nebo se načítají online. Online načítání se řídí protokolem WS-MetadataExchange nebo protokolem MICROSOFT Discovery (DISCO). Svcutil.exe současně vydává následující požadavky na metadata pro načtení metadat:

  • WS-MetadataExchange (MEX) žádost na zadanou adresu.

  • Požadavek MEX na zadanou adresu s /mex připojeným.

  • ŽÁDOST O DISKO (pomocí DiscoveryClientProtocol webových služeb z ASP.NET) na zadanou adresu.

Svcutil.exe vygeneruje klienta na základě jazyka WSDL (Web Services Description Language) nebo souboru zásad přijatého ze služby. Hlavní název uživatele (UPN) se vygeneruje zřetězením uživatelského jména s názvem @a následným přidáním plně kvalifikovaného názvu domény (FQDN). Pro uživatele, kteří se zaregistrovali ve službě Active Directory, ale tento formát není platný a hlavní název uživatele (UPN), který nástroj generuje, způsobí chybu v ověřování protokolem Kerberos s následující chybovou zprávou: Pokus o přihlášení se nezdařil. Chcete-li tento problém vyřešit, ručně opravte klientský soubor, který nástroj vygeneroval.

svcutil.exe [/t:code]  <metadataDocumentPath>* | <url>* | <epr>  

Odkazování a sdílení typů

Možnost Popis
/reference:<cesta k souboru> Odkazuje na typy ve specifikovaném sestavení. Při generování klientů použijte tuto možnost k určení sestavení, která mohou obsahovat typy představující importovaná metadata.

Krátký formulář: /r
/vyloučitTyp:<typ> Určuje plně kvalifikovaný název typu nebo název typu kvalifikovaný sestavou, který bude vyloučen z odkazovaných typů kontraktů.

Krátký formulář: /et

Volba serializátoru

Možnost Popis
/serializer:Auto Automaticky vybere serializátor. Toto používá DataContract serializátor. Pokud se to nezdaří, použije se XmlSerializer .

Krátký formulář: /ser:Auto
/serializer:DataContractSerializer Generuje datové typy, které používají DataContract serializátor pro serializaci a deserializaci.

Krátký formulář: /ser:DataContractSerializer
/serializer:XmlSerializer Generuje datové typy, které používají XmlSerializer k serializaci a deserializaci.

Krátký formulář: /ser:XmlSerializer
/importXmlTypes Konfiguruje DataContract serializátor pro import netypů DataContract jako typů IXmlSerializable.

Krátký formulář: /ixt
/dataContractOnly Generuje kód pouze pro DataContract typy. ServiceContract typy jsou generovány.

Pro tuto možnost byste měli zadat pouze místní soubory metadat.

Krátký formulář: /dconly

Volba jazyka pro klienta

Možnost Popis
/language:<jazyk> Určuje programovací jazyk, který se má použít pro generování kódu. Zadejte buď název jazyka zaregistrovaný v souboru Machine.config, nebo plně kvalifikovaný název třídy, která dědí z CodeDomProvider.

Hodnoty: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Výchozí: csharp

Krátký formulář: /l

Další informace najdete v třídě CodeDomProvider.

Volba prostoru názvů pro klienta

Možnost Popis
/namespace:<string, string> Určuje mapování ze schématu targetNamespace WSDL nebo XML na obor názvů CLR (Common Language Runtime). Použití zástupného znaku (*) pro targetNamespace mapuje všechna targetNamespaces bez explicitního mapování k tomuto oboru názvů CLR.

Chcete-li zajistit, aby název kontraktu zprávy nekolidoval s názvem operace, buď specifikujte odkaz na typ pomocí dvojitých dvojteček (::), nebo se ujistěte, že názvy jsou jedinečné.

Výchozí: Odvozeno z cílového jmenného prostoru dokumentu schématu pro DataContracts. Výchozí obor názvů se používá pro všechny ostatní generované typy.

Krátký formulář: /n

Volba datové vazby

Možnost Popis
/enableDataBinding Implementuje rozhraní INotifyPropertyChanged pro všechny typy DataContract, aby se povolila datová vazba.

Krátký formulář: /edb

Generování konfigurace

Možnost Popis
/config:<configFile> Určuje název souboru pro vygenerovaný konfigurační soubor.

Výchozí: output.config
/mergeConfig Sloučí vygenerovanou konfiguraci do existujícího souboru místo přepsání existujícího souboru.
/noConfig Nevygenerujte konfigurační soubory.

Viz také