Aracılığıyla paylaş


ServiceContractGenerator Sınıf

Tanım

Türü, ServiceContractGenerator açıklama nesnelerinden ServiceEndpoint hizmet sözleşmesi kodu ve bağlama yapılandırmaları oluşturur.

public ref class ServiceContractGenerator
public class ServiceContractGenerator
type ServiceContractGenerator = class
Public Class ServiceContractGenerator
Devralma
ServiceContractGenerator

Örnekler

Aşağıdaki örnekte indirilen meta verileri koda dönüştürmek için bir ServiceContractGenerator kullanımı gösterilmektedir.

  static void GenerateCSCodeForService(EndpointAddress metadataAddress, string outputFile)
  {
MetadataExchangeClient mexClient = new MetadataExchangeClient(metadataAddress);
mexClient.ResolveMetadataReferences = true;
MetadataSet metaDocs = mexClient.GetMetadata();

      WsdlImporter importer = new WsdlImporter(metaDocs);
ServiceContractGenerator generator = new ServiceContractGenerator();

// Add our custom DCAnnotationSurrogate
// to write XSD annotations into the comments.
object dataContractImporter;
XsdDataContractImporter xsdDCImporter;
if (!importer.State.TryGetValue(typeof(XsdDataContractImporter), out dataContractImporter))
{
  Console.WriteLine("Couldn't find the XsdDataContractImporter! Adding custom importer.");
  xsdDCImporter = new XsdDataContractImporter();
  xsdDCImporter.Options = new ImportOptions();
  importer.State.Add(typeof(XsdDataContractImporter), xsdDCImporter);
}
else
{
  xsdDCImporter = (XsdDataContractImporter)dataContractImporter;
  if (xsdDCImporter.Options == null)
  {
    Console.WriteLine("There were no ImportOptions on the importer.");
    xsdDCImporter.Options = new ImportOptions();
  }
}
xsdDCImporter.Options.DataContractSurrogate = new DCAnnotationSurrogate();

// Uncomment the following code if you are going to do your work programmatically rather than add
// the WsdlDocumentationImporters through a configuration file.
/*
// The following code inserts a custom WsdlImporter without removing the other
// importers already in the collection.
System.Collections.Generic.IEnumerable<IWsdlImportExtension> exts = importer.WsdlImportExtensions;
System.Collections.Generic.List<IWsdlImportExtension> newExts
  = new System.Collections.Generic.List<IWsdlImportExtension>();
foreach (IWsdlImportExtension ext in exts)
{
  Console.WriteLine("Default WSDL import extensions: {0}", ext.GetType().Name);
  newExts.Add(ext);
}
newExts.Add(new WsdlDocumentationImporter());
System.Collections.Generic.IEnumerable<IPolicyImportExtension> polExts = importer.PolicyImportExtensions;
importer = new WsdlImporter(metaDocs, polExts, newExts);
*/

System.Collections.ObjectModel.Collection<ContractDescription> contracts
  = importer.ImportAllContracts();
importer.ImportAllEndpoints();
      foreach (ContractDescription contract in contracts)
      {
          generator.GenerateServiceContractType(contract);
      }
if (generator.Errors.Count != 0)
  throw new Exception("There were errors during code compilation.");

// Write the code dom
System.CodeDom.Compiler.CodeGeneratorOptions options
  = new System.CodeDom.Compiler.CodeGeneratorOptions();
      options.BracingStyle = "C";
      System.CodeDom.Compiler.CodeDomProvider codeDomProvider
  = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("C#");
      System.CodeDom.Compiler.IndentedTextWriter textWriter
  = new System.CodeDom.Compiler.IndentedTextWriter(new System.IO.StreamWriter(outputFile));
      codeDomProvider.GenerateCodeFromCompileUnit(
  generator.TargetCompileUnit, textWriter, options
);
      textWriter.Close();
  }

Açıklamalar

ServiceContractGenerator araçlarını oluşturmak veya kullanarak System.ServiceModel.Description.IWsdlImportExtensionvarsayılan sözleşme oluşturma işlemini değiştirmek için öğesini kullanın.

Oluşturucular

ServiceContractGenerator()

Sınıfının yeni bir örneğini ServiceContractGenerator yeni CodeCompileUnit bir örnekle başlatır.

ServiceContractGenerator(CodeCompileUnit)

Belirtilen CodeCompileUnit örnekle sınıfının yeni bir örneğini ServiceContractGenerator başlatır.

ServiceContractGenerator(CodeCompileUnit, Configuration)

Belirtilen örnek ve belirtilen CodeCompileUnit örnek ServiceContractGenerator ile sınıfının yeni bir örneğini Configuration başlatır.

ServiceContractGenerator(Configuration)

Belirtilen Configuration örnekle sınıfının yeni bir örneğini ServiceContractGenerator başlatır.

Özellikler

Configuration

Configuration Oluşturulan bağlama yapılandırmalarını içeren örneği alır.

Errors

Hizmet sözleşmesi kodu ve uç nokta yapılandırmaları oluşturulurken oluşturulan nesne koleksiyonunu MetadataConversionError alır.

NamespaceMappings

Sözleşme açıklaması ad alanlarının kod oluştururken kullanılan yönetilen ad alanlarına eşlemesini alır.

Options

Hizmet sözleşmesi kodu oluşturmak için seçenekleri alır veya ayarlar.

ReferencedTypes

Sözleşme açıklamalarından başvuruda bulunan sözleşme türlerine eşleme alır.

TargetCompileUnit

Hizmet sözleşmesi kodu oluşturmak için hedef CodeCompileUnit nesneyi alır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GenerateBinding(Binding, String, String)

Belirtilen Binding örnek için bir bağlama yapılandırması oluşturur.

GenerateServiceContractType(ContractDescription)

Belirtilen ContractDescription örnekten bir hizmet sözleşmesi türü oluşturur.

GenerateServiceEndpoint(ServiceEndpoint, ChannelEndpointElement)

Belirtilen ServiceEndpoint örnekten bir hizmet sözleşmesi türü ve uç nokta yapılandırması oluşturur.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır