Delen via


Een WCF-client genereren op basis van servicemetagegevens

In dit onderwerp wordt beschreven hoe u de verschillende schakelopties in Svcutil.exe kunt gebruiken om clients te genereren op basis van metagegevensdocumenten.

Metagegevensdocumenten kunnen zich in een duurzame opslag bevinden of online worden opgehaald. Online ophalen volgt het WS-MetadataExchange-protocol of het Microsoft Discovery-protocol (DISCO). Svcutil.exe problemen met de volgende metagegevensaanvragen tegelijk om metagegevens op te halen:

  • WS-MetadataExchange -aanvraag (MEX) naar het opgegeven adres.

  • MEX-aanvraag aan het opgegeven adres waaraan /mex is toegevoegd.

  • DISCO-aanvraag (met behulp van de DiscoveryClientProtocol van ASP.NET webservices) naar het opgegeven adres.

Svcutil.exe genereert de client op basis van de WSDL (Web Services Description Language) of het beleidsbestand dat is ontvangen van de service. De UPN (User Principal Name) wordt gegenereerd door de gebruikersnaam samen te voegen met '@' en vervolgens een FQDN (Fully Qualified Domain Name) toe te voegen. Voor gebruikers die zich in Active Directory hebben geregistreerd, is deze indeling echter niet geldig en de UPN die het hulpprogramma genereert, veroorzaakt een fout in de Kerberos-verificatie met het volgende foutbericht: De aanmeldingspoging is mislukt. U kunt dit probleem oplossen door het clientbestand dat door het hulpprogramma is gegenereerd, handmatig op te lossen.

svcutil.exe [/t:code]  <metadataDocumentPath>* | <url>* | <epr>  

Typen verwijzingen en delen

Optie Omschrijving
/reference:<bestandspad> Verwijzingen in de opgegeven assembly. Wanneer u clients genereert, gebruikt u deze optie om assembly's op te geven die mogelijk typen bevatten die de metagegevens vertegenwoordigen die worden geïmporteerd.

Korte vorm: /r
/excludeType:<type> Hiermee geeft u een volledig gekwalificeerde of assembly-gekwalificeerde typenaam die moet worden uitgesloten van contracttypen waarnaar wordt verwezen.

Korte vorm: /et

Een serialisatiefunctie kiezen

Optie Omschrijving
/serializer:Auto Hiermee selecteert u automatisch de serialisatiefunctie. Hierbij wordt gebruikgemaakt van de DataContract serializer. Als dit mislukt, wordt het XmlSerializer gebruikt.

Korte vorm: /ser:Auto
/serializer:DataContractSerializer Hiermee worden gegevenstypen gegenereerd die gebruikmaken van de DataContract serialisatiefunctie voor serialisatie en deserialisatie.

Korte vorm: /ser:DataContractSerializer
/serializer:XmlSerializer Hiermee worden gegevenstypen gegenereerd die gebruikmaken van de XmlSerializer voor serialisatie en deserialisatie.

Korte vorm: /ser:XmlSerializer
/importXmlTypes Hiermee configureert u de DataContract serializer om niet-typenDataContract als IXmlSerializable typen te importeren.

Korte vorm: /ixt
/dataContractOnly Hiermee genereert u alleen code voor DataContract typen. ServiceContract typen worden gegenereerd.

U moet alleen lokale metagegevensbestanden voor deze optie opgeven.

Korte vorm: /dconly

Een taal voor de client kiezen

Optie Omschrijving
/language:<language> Hiermee geeft u de programmeertaal op die moet worden gebruikt voor het genereren van code. Geef een taalnaam op die is geregistreerd in het bestand Machine.config of de volledig gekwalificeerde naam van een klasse die wordt overgenomen van CodeDomProvider.

Waarden: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Standaard: csharp

Korte vorm: /l

Zie klasse voor meer informatie CodeDomProvider .

Een naamruimte voor de client kiezen

Optie Omschrijving
/naamruimte:<tekenreeks,tekenreeks> Hiermee geeft u een toewijzing van een WSDL- of XML-schema targetNamespace aan een COMMON Language Runtime-naamruimte (CLR). Het gebruik van een jokerteken (*) voor de targetNamespace kaarten allemaal targetNamespaces zonder expliciete toewijzing aan die CLR-naamruimte.

Om ervoor te zorgen dat de naam van het berichtcontract niet conflicteert met de naam van de bewerking, moet u de typeverwijzing met dubbele dubbele punten (::) kwalificeren of ervoor zorgen dat de namen uniek zijn.

Standaard: Afgeleid van de doelnaamruimte van het schemadocument voor DataContracts. De standaardnaamruimte wordt gebruikt voor alle andere gegenereerde typen.

Korte vorm: /n

Een gegevensbinding kiezen

Optie Omschrijving
/enableDataBinding Implementeert de INotifyPropertyChanged interface op alle DataContract typen om gegevensbinding in te schakelen.

Korte vorm: /edb

Configuratie genereren

Optie Omschrijving
/config:<configFile> Hiermee geeft u de bestandsnaam voor het gegenereerde configuratiebestand.

Standaard: output.config
/mergeConfig Hiermee wordt de gegenereerde configuratie samengevoegd in een bestaand bestand in plaats van het bestaande bestand te overschrijven.
/noConfig Genereer geen configuratiebestanden.

Zie ook