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:

  • Požadavek WS-MetadataExchange (MEX) na zadanou adresu

  • Požadavek MEX na zadanou adresu s připojeným /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í na typy sdílení a odkazování

Možnost Popis
/reference:<cesta k souboru> Odkazy na typy v zadané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
/excludeType:<type> Určuje plně kvalifikovaný název typu nebo název sestavení, který má být vyloučen z odkazovaných typů kontraktů.

Krátký formulář: /et

Volba serializátoru

Možnost Popis
/serializer:Auto Automaticky vybere serializátor. DataContract Používá se 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 serializaci a deserializaci.

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

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:<language> 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ématu CodeDomProvider třída.

Volba oboru 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 targetNamespace (*) pro mapování všech targetNamespaces bez explicitního mapování na tento obor názvů CLR.

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

Výchozí: Odvozeno z cílového oboru názvů 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 INotifyPropertyChanged rozhraní na všech DataContract typech, 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é