Postupy: Použití nástroje Svcutil.exe pro export metadat z kompilovaného kódu služby
Svcutil.exe může exportovat metadata pro služby, kontrakty a datové typy v kompilovaných sestaveních následujícím způsobem:
Pokud chcete exportovat metadata pro všechny kompilované kontrakty služeb pro sadu sestavení pomocí Svcutil.exe, zadejte sestavení jako vstupní parametry. Toto je výchozí chování.
Pokud chcete exportovat metadata pro kompilovanou službu pomocí Svcutil.exe, zadejte sestavení nebo sestavení služby jako vstupní parametry. Tuto možnost musíte použít
/serviceName
k označení názvu konfigurace služby, kterou chcete exportovat. Svcutil.exe automaticky načte konfigurační soubor pro zadané spustitelné sestavení.Chcete-li exportovat všechny typy kontraktů dat v rámci sady sestavení, použijte tuto
/dataContractOnly
možnost.
Poznámka:
/reference
Pomocí možnosti určete cesty k souborům ke všem závislým sestavením.
Export metadat pro kompilované kontrakty služeb
Zkompilujte implementace kontraktů služeb do jedné nebo více knihoven tříd.
Spusťte Svcutil.exe na kompilovaných sestaveních.
Poznámka:
Možná budete muset pomocí
/reference
přepínače určit cestu k souboru ke všem závislým sestavením.svcutil.exe Contracts.dll
Export metadat pro kompilovanou službu
Zkompilujte implementaci služby do spustitelného sestavení.
Vytvořte konfigurační soubor pro spustitelný soubor služby a přidejte konfiguraci služby.
<?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>
Spusťte Svcutil.exe na spustitelném souboru kompilované služby pomocí
/serviceName
přepínače a zadejte název konfigurace služby.Poznámka:
Možná budete muset pomocí
/reference
přepínače určit cestu k souboru ke všem závislým sestavením.svcutil.exe /serviceName:MyService Service.exe /reference:path/Contracts.dll
Export metadat pro kompilované kontrakty dat
Zkompilujte implementace kontraktů dat do jedné nebo více knihoven tříd.
Spusťte Svcutil.exe na kompilovaných sestaveních pomocí
/dataContract
přepínače a určete, že se mají generovat pouze metadata pro kontrakty dat.Poznámka:
Možná budete muset pomocí
/reference
přepínače určit cestu k souboru ke všem závislým sestavením.svcutil.exe /dataContractOnly Contracts.dll
Příklad
Následující příklad ukazuje, jak generovat metadata pro jednoduchou implementaci a konfiguraci služby.
Export metadat pro kontrakt služby.
svcutil.exe Contracts.dll
Export metadat pro kontrakty dat.
svcutil.exe /dataContractOnly Contracts.dll
Export metadat pro implementaci služby
svcutil.exe /serviceName:MyService Service.exe /reference:<path>/Contracts.dll
Je to <path>
cesta k 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>