Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird beschrieben, wie Sie die verschiedenen Schalter in Svcutil.exe verwenden, um Clients aus Metadatendokumenten zu generieren.
Metadatendokumente können sich auf einem dauerhaften Speicher befinden oder online abgerufen werden. Der Onlineabruf folgt entweder dem WS-MetadataExchange-Protokoll oder dem Microsoft Discovery(DISCO)-Protokoll. Svcutil.exe gibt die folgenden Metadatenanforderungen gleichzeitig aus, um Metadaten abzurufen:
WS-MetadataExchange (MEX)-Anforderung an die angegebene Adresse
MEX-Anforderung an die angegebene Adresse mit angefügtem
/mexDISCO-Anforderung (mit DiscoveryClientProtocol (möglicherweise nur in englischer Sprache verfügbar) von ASP.NET-Webdiensten) an die angegebene Adresse.
Svcutil.exe generiert den Client basierend auf der vom Dienst erhaltenen Webdienstbeschreibungssprache (Web Services Description Language, WSDL) oder einer Richtliniendatei. Der Benutzerprinzipalname (USER Principal Name, UPN) wird generiert, indem der Benutzername mit "@" verkettet und dann ein vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) hinzugefügt wird. Für Benutzer, die sich bei Active Directory registriert haben, ist dieses Format jedoch ungültig, und der UPN, den das Tool generiert, verursacht einen Fehler in der Kerberos-Authentifizierung mit der folgenden Fehlermeldung: Der Anmeldeversuch ist fehlgeschlagen. Um dieses Problem zu beheben, beheben Sie die vom Tool generierte Clientdatei manuell.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
Verweisen auf Typen und Freigeben von Typen
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| /reference:<Dateipfad> | Verweist auf Typen in der angegebenen Assembly. Verwenden Sie beim Generieren von Clients diese Option, um Assemblys anzugeben, die Typen enthalten können, die die zu importierenden Metadaten darstellen. Kurzform: /r |
| /excludeType:<type> | Gibt einen vollqualifizierten oder assemblyqualifizierten Namen an, der aus den verwiesenen Vertragstypen ausgeschlossen werden soll. Kurzform: /et |
Einen Serializer auswählen
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| /serializer:Auto | Wählt automatisch den Serialisierer aus. Dies verwendet den DataContract Serialisierer. Wenn dies fehlschlägt, wird das XmlSerializer verwendet.Kurzform: /ser:Auto |
| /serializer:DataContractSerializer | Generiert Datentypen, die den Serialisierer für die DataContract Serialisierung und Deserialisierung verwenden.Kurzform: /ser:DataContractSerializer |
| /serializer:XmlSerializer | Generiert Datentypen, die XmlSerializer zur Serialisierung und Deserialisierung verwenden.Kurzform: /ser:XmlSerializer |
| /importXmlTypes | Konfiguriert den DataContract Serialisierer, um nicht-DataContract-Typen als IXmlSerializable-Typen zu importieren.Kurzform: /ixt |
| /dataContractOnly | Generiert nur Code für DataContract Typen.
ServiceContract Typen werden generiert.Sie sollten nur lokale Metadatendateien für diese Option angeben. Kurzform: /dconly |
Auswählen einer Sprache für den Client
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| /language:<Sprache> | Gibt die Programmiersprache an, die für die Codegenerierung verwendet werden soll. Geben Sie entweder einen in der Datei Machine.config registrierten Sprachnamen oder den vollqualifizierten Namen einer Klasse an, die von CodeDomProvider erbt. Werte: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp Standard: csharp Kurzform: /lWeitere Informationen finden Sie unter CodeDomProvider Klasse. |
Auswählen eines Namespace für den Client
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| /namespace:<string,string> | Gibt eine Zuordnung von einem WSDL- oder XML-Schema targetNamespace zu einem CLR-Namespace (Common Language Runtime) an. Durch die Verwendung eines Platzhalters (*) für targetNamespace werden alle targetNamespaces ohne eine explizite Zuordnung diesem CLR-Namespace zugeordnet.Um sicherzustellen, dass der Name des Nachrichtenvertrags nicht mit dem Vorgangsnamen kollidiert, qualifizieren Sie entweder den Typverweis mit Doppelkolons ( ::) oder stellen Sie sicher, dass die Namen eindeutig sind.Standard: Abgeleitet vom Zielnamespace des Schemadokuments für DataContracts. Der Standardnamespace wird für alle anderen generierten Typen verwendet.Kurzform: /n |
Auswählen einer Datenbindung
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| /enableDataBinding | Implementiert die INotifyPropertyChanged-Schnittstelle bei allen DataContract-Typen, um die Datenbindung zu aktivieren.Kurzform: /edb |
Generieren der Konfiguration
| Auswahlmöglichkeit | BESCHREIBUNG |
|---|---|
| /config:<configFile> | Gibt den Dateinamen für die generierte Konfigurationsdatei an. Standard: output.config. |
| /mergeConfig | Führt die generierte Konfiguration in einer vorhandenen Datei zusammen, anstatt die vorhandene Datei zu überschreiben. |
| /noConfig | Generieren Sie keine Konfigurationsdateien. |