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. |