Procedure: Svcutil.exe gebruiken om metagegevens te exporteren uit gecompileerde servicecode
Svcutil.exe kunt als volgt metagegevens exporteren voor services, contracten en gegevenstypen in gecompileerde assembly's:
Als u metagegevens wilt exporteren voor alle gecompileerde servicecontracten voor een set assembly's met behulp van Svcutil.exe, geeft u de assembly's op als invoerparameters. Dit is het standaardgedrag.
Als u metagegevens wilt exporteren voor een gecompileerde service met behulp van Svcutil.exe, geeft u de serviceassembly of assembly's op als invoerparameters. U moet de
/serviceName
optie gebruiken om de configuratienaam aan te geven van de service die u wilt exporteren. Svcutil.exe het configuratiebestand automatisch laadt voor de opgegeven uitvoerbare assembly.Als u alle typen gegevenscontract in een set assembly's wilt exporteren, gebruikt u de
/dataContractOnly
optie.
Notitie
Gebruik de /reference
optie om de bestandspaden naar afhankelijke assembly's op te geven.
Metagegevens exporteren voor gecompileerde servicecontracten
Compileer uw servicecontract-implementaties in een of meer klassebibliotheken.
Voer Svcutil.exe uit op de gecompileerde assembly's.
Notitie
Mogelijk moet u de
/reference
schakeloptie gebruiken om het bestandspad op te geven naar afhankelijke assembly's.svcutil.exe Contracts.dll
Metagegevens voor een gecompileerde service exporteren
Compileer uw service-implementatie in een uitvoerbare assembly.
Maak een configuratiebestand voor het uitvoerbare bestand van uw service en voeg een serviceconfiguratie toe.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service name="MyService" > <endpoint address="finder" contract="IPeopleFinder" binding="wsHttpBinding" /> </service> </services> </system.serviceModel> </configuration>
Voer Svcutil.exe uit op het uitvoerbare bestand van de gecompileerde service met behulp van de
/serviceName
switch om de configuratienaam van de service op te geven.Notitie
Mogelijk moet u de
/reference
schakeloptie gebruiken om het bestandspad op te geven naar afhankelijke assembly's.svcutil.exe /serviceName:MyService Service.exe /reference:path/Contracts.dll
Metagegevens exporteren voor gecompileerde gegevenscontracten
Compileer uw gegevenscontract-implementaties in een of meer klassebibliotheken.
Voer Svcutil.exe uit op de gecompileerde assembly's met behulp van de
/dataContract
schakeloptie om op te geven dat alleen metagegevens voor gegevenscontracten moeten worden gegenereerd.Notitie
Mogelijk moet u de
/reference
schakeloptie gebruiken om het bestandspad op te geven naar afhankelijke assembly's.svcutil.exe /dataContractOnly Contracts.dll
Opmerking
In het volgende voorbeeld ziet u hoe u metagegevens genereert voor een eenvoudige service-implementatie en -configuratie.
Metagegevens voor het servicecontract exporteren.
svcutil.exe Contracts.dll
Metagegevens voor de gegevenscontracten exporteren.
svcutil.exe /dataContractOnly Contracts.dll
Metagegevens exporteren voor de service-implementatie.
svcutil.exe /serviceName:MyService Service.exe /reference:<path>/Contracts.dll
Het <path>
is het pad naar Contracts.dll.
// The following service contract and data contracts are compiled into
// Contracts.dll.
[ServiceContract(ConfigurationName="IPeopleFinder")]
public interface IPersonFinder
{
[OperationContract]
Address GetAddress(Person s);
}
[DataContract]
public class Person
{
[DataMember]
public string firstName;
[DataMember]
public string lastName;
[DataMember]
public int age;
}
[DataContract]
public class Address
{
[DataMember]
public string city;
[DataMember]
public string state;
[DataMember]
public string street;
[DataMember]
public int zipCode;
[DataMember]
public Person person;
}
// The following service implementation is compiled into Service.exe.
// This service uses the contracts specified in Contracts.dll.
[ServiceBehavior(ConfigurationName = "MyService")]
public class MyService : IPersonFinder
{
public Address GetAddress(Person person)
{
Address address = new Address();
address.person = person;
return address;
}
}
<!-- The following is the configuration file for Service.exe. -->
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="MyService">
<endpoint address="finder"
binding="basicHttpBinding"
contract="IPeopleFinder"/>
</service>
</services>
</system.serviceModel>
</configuration>