Udostępnij za pośrednictwem


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 na podstawie dokumentów metadanych.

Dokumenty metadanych mogą znajdować się w trwałym magazynie lub być pobierane w trybie online. Pobieranie 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:

  • Żądanie WS-MetadataExchange (MEX) do podanego adresu.

  • Żądanie MEX do podanego adresu z dołączonym /mex .

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

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 i odwoływanie się do

Opcja Opis
/reference:<ścieżka pliku> Odwołania 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ą przez zestaw nazwę typu, 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 to serializatora DataContract . Jeśli to się nie powiedzie, XmlSerializer zostanie użyty element .

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 elementu do serializacji i deserializacji.

Krótka forma: /ser:XmlSerializer
/importXmlTypes Konfiguruje serializator do importowania DataContract typów innychDataContract niż IXmlSerializable 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:<language> 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 dziedziczonej z CodeDomProviderklasy .

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 targetNamespace WSDL lub XML na przestrzeń nazw środowiska uruchomieniowego języka wspólnego (CLR). Używanie symbolu targetNamespace wieloznakowego (*) dla map targetNamespaces bez jawnego mapowania do tej przestrzeni nazw CLR.

Aby upewnić się, że nazwa kontraktu komunikatu nie zderza się z nazwą operacji, należy zakwalifikować 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 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 na wszystkich DataContract typachINotifyPropertyChanged, aby włączyć powiązanie danych.

Krótka forma: /edb

Generowanie konfiguracji

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

Ustawienie domyślne: output.config
/mergeConfig Scala wygenerowaną konfigurację z istniejącym plikiem zamiast zastępować istniejący plik.
/noConfig Nie generuj plików konfiguracji.

Zobacz też