ServiceContractGenerator Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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) |