Dela via


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.

Se även