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