Udostępnij przez


Generowanie klienta programu WCF na podstawie metadanych usługi

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

Dokumenty metadanych mogą znajdować się w trwałym magazynie lub być pobierane w trybie online. Pobieranie w trybie online jest zgodne z protokołem WS-MetadataExchange lub protokołem Microsoft Discovery (DISCO). Svcutil.exe wysyła jednocześnie następujące żądania metadanych w celu pobrania metadanych:

  • WS-MetadataExchange (MEX) wysyłanie żądania pod podany adres.

  • Żądanie MEX na podany adres z dopiskiem /mex.

  • Żądanie DISCO do podanego adresu, przy użyciu elementu DiscoveryClientProtocol z usług ASP.NET Web.

Svcutil.exe generuje klienta na podstawie języka WSDL (Web Services Description Language) lub pliku zasad odebranych z usługi. Główna nazwa użytkownika (UPN) jest generowana przez łączenie nazwy użytkownika z nazwą "@", a następnie dodawanie 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 nazwa UPN wygenerowana przez narzędzie powoduje niepowodzenie uwierzytelniania Kerberos z następującym komunikatem o błędzie: Próba logowania nie powiodła się. Aby rozwiązać ten problem, ręcznie rozwiąż plik klienta wygenerowany przez narzędzie.

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

Odwoływanie się do typów udostępniania

Opcja Opis
/reference:<ścieżka pliku> Odniesienia 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
/wykluczTyp:<typ> Określa w pełni kwalifikowaną lub kwalifikowaną na poziomie zestawu nazwę typu, która ma zostać wykluczona z przywołanych typów kontraktów.

Krótka forma: /et

Wybieranie serializatora

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

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

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

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

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

Należy określić tylko lokalne pliki metadanych dla tej opcji.

Krótka forma: /dconly

Wybieranie języka dla klienta

Opcja Opis
/language:<język> Określa język programowania do użycia na potrzeby generowania kodu. Podaj nazwę języka zarejestrowaną w pliku Machine.config lub w pełni kwalifikowaną nazwę klasy, która dziedziczy z 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.

Wybór przestrzeni nazw dla klienta

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

Aby upewnić się, że nazwa kontraktu komunikatu nie koliduje z nazwą operacji, można określić odwołanie do typu za pomocą podwójnych dwukropków (::) lub upewnić się, że nazwy są unikatowe.

Ustawienie domyślne: pochodzi z docelowej przestrzeni nazw dokumentu schematu dla elementu DataContracts. 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 Łączy wygenerowaną konfigurację z istniejącym plikiem, zamiast zastępować go.
/noConfig Nie generuj plików konfiguracji.

Zobacz także