Generowanie klienta programu WCF na podstawie metadanych usługi

W tym temacie opisano sposób używania różnych przełączników w programie Svcutil.exe do generowania klientów na podstawie dokumentów metadanych.

Dokumenty metadanych mogą być w trwałym magazynie lub pobierane w trybie online. Pobieranie w trybie online jest WS-MetadataExchange protokołu MICROSOFT Discovery (SSL). Svcutil.exe problemy z następującymi żądaniami metadanych jednocześnie w celu pobrania metadanych:

  • WS-MetadataExchange (MEX) do podanego adresu.

  • Żądanie MEX na podany adres z /mex dołączonym.

  • Żądanie STRONIE (przy użyciu DiscoveryClientProtocol ASP.NET sieci Web) do podanego adresu.

Svcutil.exe generuje klienta na podstawie pliku Web Services Description Language (WSDL) lub pliku zasad odebranych z usługi. Główna nazwa użytkownika (UPN) jest generowana przez ujedno sieciową nazwę użytkownika z wartością "", a następnie dodanie w pełni kwalifikowanej nazwy domeny @ (FQDN). Jednak w przypadku użytkowników, którzy zarejestrowali się w usłudze Active Directory, ten format jest nieprawidłowy, a wygenerowana przez narzędzie wartość UPN powoduje błąd uwierzytelniania Kerberos z następującym komunikatem o błędzie: Próba logowania nie powiodła się. Aby rozwiązać ten problem, ręcznie napraw plik klienta wygenerowany przez narzędzie.

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

Odwoływanie się do typów i udostępnianie ich

Opcja Opis
/reference:<file path> Odwołuje się do typów w określonym zestawie. Podczas generowania klientów użyj tej opcji, aby określić zestawy, które mogą zawierać typy reprezentujące importowane metadane.

Krótka forma: /r
/excludeType:<type> Określa w pełni kwalifikowaną lub kwalifikowaną nazwę typu zestawu, która ma zostać wykluczona z przywołynych typów kontraktów.

Krótka forma: /et

Wybieranie serializatora

Opcja Opis
/serializer:Auto Automatycznie wybiera serializator. Używa DataContract serializatora. Jeśli to się nie powiedzie, XmlSerializer zostanie użyty .

Formularz krótki: /ser:Auto
/serializer:DataContractSerializer Generuje typy danych, które używają DataContract serializatora do serializacji i deserializacji.

Krótka forma: /ser:DataContractSerializer
/serializer:XmlSerializer Generuje typy danych, które używają do XmlSerializer serializacji i deserializacji.

Krótka forma: /ser:XmlSerializer
/importXmlTypes Konfiguruje DataContract serializator do importowania typów innych DataContract niż jako IXmlSerializable typy.

Krótka forma: /ixt
/dataContractOnly Generuje kod tylko DataContract dla typów. ServiceContract typy są generowane.

Dla tej opcji należy określić tylko lokalne pliki metadanych.

Krótka forma: /dconly

Wybieranie języka dla klienta

Opcja Opis
/language:<language> Określa język programowania używany do generowania kodu. Podaj nazwę języka zarejestrowaną w Machine.config lub w pełni kwalifikowaną nazwę klasy, która dziedziczy z klasy CodeDomProvider .

Wartości: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Ustawienie domyślne: csharp

Krótka forma: /l

Aby uzyskać więcej informacji, zobacz CodeDomProvider klasa.

Wybieranie przestrzeni nazw dla klienta

Opcja Opis
/namespace:<string,string> Określa mapowanie ze schematu WSDL lub XML do przestrzeni nazw środowiska uruchomieniowego języka wspólnego targetNamespace (CLR). Użycie symbolu wieloznacznego (*) dla targetNamespace mapuje wszystko targetNamespaces bez jawnego mapowania do tej przestrzeni nazw CLR.

Aby upewnić się, że nazwa kontraktu komunikatu nie koliduje z nazwą operacji, należy kwalifikować odwołanie do typu z podwójnymi dwukropkami () lub upewnić się, że :: nazwy są unikatowe.

Ustawienie domyślne: pochodzi z docelowej przestrzeni nazw dokumentu schematu dla DataContracts elementu . Domyślna przestrzeń nazw jest używana dla wszystkich innych wygenerowanych typów.

Krótka forma: /n

Wybieranie powiązania danych

Opcja Opis
/enableDataBinding Implementuje interfejs INotifyPropertyChanged na wszystkich DataContract typach, aby włączyć powiązanie danych.

Krótka forma: /edb

Generowanie konfiguracji

Opcja Opis
/config:<configFile> Określa nazwę wygenerowanego pliku konfiguracji.

Ustawienie domyślne: output.config
/mergeConfig Scala wygenerowaną konfigurację z istniejącym plikiem, a nie nadpisuje istniejący plik.
/noConfig Nie należy generować plików konfiguracji.

Zobacz też