Sdílet prostřednictvím


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

  1. Zkompilujte implementace kontraktů služeb do jedné nebo více knihoven tříd.

  2. 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

  1. Zkompilujte implementaci služby do spustitelného sestavení.

  2. 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>  
    
  3. 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

  1. Zkompilujte implementace kontraktů dat do jedné nebo více knihoven tříd.

  2. 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>  

Viz také