Megosztás a következőn keresztül:


Útmutató: Metaadatok exportálása a Svcutil.exe használatával a lefordított szolgáltatáskódból

Svcutil.exe exportálhatja a szolgáltatások, szerződések és adattípusok metaadatait a lefordított szerelvényekben az alábbiak szerint:

  • Ha a Svcutil.exe használatával exportálni szeretné az összes lefordított szolgáltatási szerződés metaadatait, adja meg a szerelvényeket bemeneti paraméterekként. Ez az alapértelmezett viselkedés.

  • Ha egy lefordított szolgáltatás metaadatait Svcutil.exe szeretné exportálni, adja meg a szolgáltatásszerelvényt vagy -szerelvényeket bemeneti paraméterként. A beállítással /serviceName meg kell adnia az exportálni kívánt szolgáltatás konfigurációs nevét. Svcutil.exe automatikusan betölti a konfigurációs fájlt a megadott végrehajtható szerelvényhez.

  • Ha az összes adatszerződéstípust egy szerelvényeken belül szeretné exportálni, használja a /dataContractOnly lehetőséget.

Feljegyzés

/reference A beállítással megadhatja a függő szerelvények fájlelérési útvonalait.

Metaadatok exportálása lefordított szolgáltatási szerződésekhez

  1. Állítsa össze a szolgáltatási szerződés implementációit egy vagy több osztálykódtárba.

  2. Futtassa a Svcutil.exe a lefordított szerelvényeken.

    Feljegyzés

    Előfordulhat, hogy a /reference kapcsolóval meg kell adnia a függő szerelvények fájlelérési útját.

    svcutil.exe Contracts.dll  
    

Metaadatok exportálása lefordított szolgáltatáshoz

  1. Állítsa össze a szolgáltatás implementációját végrehajtható szerelvénysé.

  2. Hozzon létre egy konfigurációs fájlt a végrehajtható szolgáltatáshoz, és adjon hozzá egy szolgáltatáskonfigurációt.

    <?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. Futtassa a Svcutil.exe a végrehajtható lefordított szolgáltatáson a /serviceName kapcsolóval a szolgáltatás konfigurációs nevének megadásához.

    Feljegyzés

    Előfordulhat, hogy a /reference kapcsolóval meg kell adnia a függő szerelvények fájlelérési útját.

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

Metaadatok exportálása lefordított adatszerződésekhez

  1. Állítsa össze az adatszerződés implementációit egy vagy több osztálykódtárba.

  2. Futtassa a Svcutil.exe a lefordított szerelvényeken a /dataContract kapcsolóval, és adja meg, hogy csak az adatszerződések metaadatait kell létrehozni.

    Feljegyzés

    Előfordulhat, hogy a /reference kapcsolóval meg kell adnia a függő szerelvények fájlelérési útját.

    svcutil.exe /dataContractOnly Contracts.dll  
    

Példa

Az alábbi példa bemutatja, hogyan hozhat létre metaadatokat egy egyszerű szolgáltatás implementálásához és konfigurálásához.

A szolgáltatásszerződés metaadatainak exportálása.

svcutil.exe Contracts.dll  

Az adatszerződések metaadatainak exportálása.

svcutil.exe /dataContractOnly Contracts.dll  

Metaadatok exportálása a szolgáltatás implementálásához.

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

Ez <path> a Contracts.dll elérési útja.

// 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>  

Lásd még