Generera en WCF-klient från tjänstmetadata
Det här avsnittet beskriver hur du använder de olika växlarna i Svcutil.exe för att generera klienter från metadatadokument.
Metadatadokument kan finnas på ett beständigt lagringsutrymme eller hämtas online. Onlinehämtning följer antingen WS-MetadataExchange-protokollet eller Microsoft Discovery-protokollet (DISCO). Svcutil.exe problem med följande metadatabegäranden samtidigt för att hämta metadata:
WS-MetadataExchange-begäran (MEX) till den angivna adressen.
MEX-begäran till den angivna adressen med
/mex
bifogad.DISCO-begäran (med hjälp av DiscoveryClientProtocol från ASP.NET webbtjänster) till den angivna adressen.
Svcutil.exe genererar klienten baserat på WSDL (Web Services Description Language) eller principfilen som tas emot från tjänsten. Användarens huvudnamn (UPN) genereras genom att användarnamnet sammanfogas med "@" och sedan lägga till ett fullständigt kvalificerat domännamn (FQDN). Men för användare som har registrerat sig i Active Directory är det här formatet inte giltigt och det UPN som verktyget genererar orsakar ett fel i Kerberos-autentiseringen med följande felmeddelande: Inloggningsförsöket misslyckades. Lös problemet genom att manuellt åtgärda klientfilen som verktyget genererade.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
Referens- och delningstyper
Alternativ | Description |
---|---|
/reference:<file path> | Refererar till typer i den angivna sammansättningen. När du genererar klienter använder du det här alternativet för att ange sammansättningar som kan innehålla typer som representerar de metadata som importeras. Kort formulär: /r |
/excludeType:<type> | Anger ett fullständigt kvalificerat eller sammansättningskvalificerat typnamn som ska undantas från refererade kontraktstyper. Kort formulär: /et |
Välja en serialiserare
Alternativ | Description |
---|---|
/serializer:Auto | Väljer serialiseraren automatiskt. Detta använder serialiseraren DataContract . Om detta misslyckas XmlSerializer används den.Kort formulär: /ser:Auto |
/serializer:DataContractSerializer | Genererar datatyper som använder serialiseraren DataContract för serialisering och deserialisering.Kort formulär: /ser:DataContractSerializer |
/serializer:XmlSerializer | Genererar datatyper som använder XmlSerializer för serialisering och deserialisering.Kort formulär: /ser:XmlSerializer |
/importXmlTypes | Konfigurerar serialiseraren DataContract för att importera icke-typerDataContract som IXmlSerializable typer.Kort formulär: /ixt |
/dataContractOnly | Genererar endast kod för DataContract typer. ServiceContract genereras.Du bör endast ange lokala metadatafiler för det här alternativet. Kort formulär: /dconly |
Välja ett språk för klienten
Alternativ | Description |
---|---|
/language:<language> | Anger det programmeringsspråk som ska användas för kodgenerering. Ange antingen ett språknamn som är registrerat i filen Machine.config eller det fullständigt kvalificerade namnet på en klass som ärver från CodeDomProvider. Värden: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp Standard: csharp Kort formulär: /l Mer information finns i CodeDomProvider klass. |
Välja ett namnområde för klienten
Alternativ | Description |
---|---|
/namespace:<string,string> | Anger en mappning från ett WSDL- eller XML-schema targetNamespace till ett CLR-namnområde (Common Language Runtime). Använda ett jokertecken (*) för mapparna targetNamespace utan targetNamespaces explicit mappning till det CLR-namnområdet.För att säkerställa att namnet på meddelandekontraktet inte kolliderar med åtgärdsnamnet kvalificerar du antingen typreferensen med dubbla kolon ( :: ) eller kontrollerar att namnen är unika.Standard: Härledd från målnamnområdet för schemadokumentet för DataContracts . Standardnamnområdet används för alla andra genererade typer.Kort formulär: /n |
Välja en databindning
Alternativ | Description |
---|---|
/enableDataBinding | Implementerar INotifyPropertyChanged gränssnittet på alla DataContract typer för att aktivera databindning.Kort formulär: /edb |
Generera konfiguration
Alternativ | Description |
---|---|
/config:<configFile> | Anger filnamnet för den genererade konfigurationsfilen. Standard: output.config |
/mergeConfig | Sammanfogar den genererade konfigurationen till en befintlig fil i stället för att skriva över den befintliga filen. |
/noConfig | Generera inte konfigurationsfiler. |