Procedura: usare Svcutil.exe per esportare metadati dal codice del servizio compilatoHow to: Use Svcutil.exe to Export Metadata from Compiled Service Code

Svcutil.exe è in grado di esportare metadati per servizi, contratti e tipi di dati in assembly compilati, come segue:Svcutil.exe can export metadata for services, contracts, and data types in compiled assemblies, as follows:

  • Per esportare metadati per tutti i contratti di servizio compilati per un set di assembly utilizzando Svcutil.exe, specificare gli assembly come parametri di input.To export metadata for all compiled service contracts for a set of assemblies using Svcutil.exe, specify the assemblies as input parameters. Comportamento predefinito.This is the default behavior.

  • Per esportare metadati per un contratto di servizio utilizzando Svcutil.exe, specificare l'assembly o gli assembly del servizio come parametri di input.To export metadata for a compiled service using Svcutil.exe, specify the service assembly or assemblies as input parameters. È necessario utilizzare l'opzione /serviceName per indicare il nome di configurazione del servizio che si desidera esportare.You must use the /serviceName option to indicate the configuration name of the service you want to export. Svcutil.exe carica automaticamente il file di configurazione dell'assembly eseguibile specificato.Svcutil.exe automatically loads the configuration file for the specified executable assembly.

  • Per esportare tutti i tipi di contratto dati all'interno di un set di assembly, utilizzare l'opzione /dataContractOnly.To export all data contract types within a set of assemblies, use the /dataContractOnly option.

Nota

Utilizzare l'opzione /reference per specificare il percorso dei file degli eventuali assembly dipendenti.Use the /reference option to specify the file paths to any dependent assemblies.

Per esportare metadati per contratti di servizio compilatiTo export metadata for compiled service contracts

  1. Compilare le implementazioni del contratto di servizio in una o più librerie di classi.Compile your service contract implementations into one or more class libraries.1

  2. Eseguire Svcutil.exe sugli assembly compilati.Run Svcutil.exe on the compiled assemblies.

    Nota

    Potrebbe essere necessario utilizzare l'opzione /reference per specificare il percorso del file di eventuali assembly dipendenti.You might need to use the /reference switch to specify the file path to any dependent assemblies.

    svcutil.exe Contracts.dll  
    

Per esportare metadati per un servizio compilatoTo export metadata for a compiled service

  1. Compilare l'implementazione del servizio in un assembly eseguibile.Compile your service implementation into an executable assembly.

  2. Creare un file di configurazione per l'eseguibile del servizio e aggiungere una configurazione del servizio.Create a configuration file for your service executable and add a service configuration.

    <?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. Eseguire Svcutil.exe sull'eseguibile del servizio compilato utilizzando l'opzione /serviceName per specificare il nome di configurazione del servizio.Run Svcutil.exe on the compiled service executable using the /serviceName switch to specify the configuration name of the service.

    Nota

    Potrebbe essere necessario utilizzare l'opzione /reference per specificare il percorso del file di eventuali assembly dipendenti.You might need to use the /reference switch to specify the file path to any dependent assemblies.

    svcutil.exe /serviceName:MyService Service.exe /reference:path/Contracts.dll  
    

Per esportare metadati per contratti dati compilatiTo export metadata for compiled data contracts

  1. Compilare le implementazioni del contratto dati in una o più librerie di classi.Compile your data contract implementations into one or more class libraries.

  2. Eseguire Svcutil.exe sugli assembly compilati utilizzando l'opzione /dataContract per specificare che devono essere generati solo i metadati dei contratti dati.Run Svcutil.exe on the compiled assemblies using the /dataContract switch to specify that only metadata for data contracts should be generated.

    Nota

    Potrebbe essere necessario utilizzare l'opzione /reference per specificare il percorso del file di eventuali assembly dipendenti.You might need to use the /reference switch to specify the file path to any dependent assemblies.

    svcutil.exe /dataContractOnly Contracts.dll  
    

EsempioExample

Nell'esempio seguente viene dimostrato come generare metadati per un'implementazione semplice del servizio e una configurazione.The following example demonstrates how to generate metadata for a simple service implementation and configuration.

Per esportare metadati per il contratto di servizioTo export metadata for the service contract.

svcutil.exe Contracts.dll  

Per esportare metadati per i contratti dati.To export metadata for the data contracts.

svcutil.exe /dataContractOnly Contracts.dll  

Per esportare metadati per l'implementazione del servizioTo export metadata for the service implementation.

svcutil.exe /serviceName:MyService Service.exe /reference:<path>/Contracts.dll  

<path> è il percorso di Contracts.dll.The <path> is the path to 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>  

Vedere ancheSee Also

Strumento ServiceModel Metadata Utility Tool (Svcutil.exe)ServiceModel Metadata Utility Tool (Svcutil.exe)
Esportazione e importazione di metadatiExporting and Importing Metadata