IServiceContractGenerationExtension Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert die während der Vertragsgenerierung aufgerufenen Methoden, die zum Ändern des generierten Codes für einen Dienstvertrag verwendet werden können.
public interface class IServiceContractGenerationExtension
public interface IServiceContractGenerationExtension
type IServiceContractGenerationExtension = interface
Public Interface IServiceContractGenerationExtension
Beispiele
Im folgenden Codebeispiel wird das Hinzufügen einer IServiceContractGenerationExtension zur ContractDescription.Behaviors-Eigenschaft während des Aufrufs zum ImportContract veranschaulicht.
public void ImportContract(WsdlImporter importer, WsdlContractConversionContext context)
{
Console.Write("ImportContract");
// Contract Documentation
if (context.WsdlPortType.Documentation != null)
{
context.Contract.Behaviors.Add(new WsdlDocumentationImporter(context.WsdlPortType.Documentation));
}
// Operation Documentation
foreach (Operation operation in context.WsdlPortType.Operations)
{
if (operation.Documentation != null)
{
OperationDescription operationDescription = context.Contract.Operations.Find(operation.Name);
if (operationDescription != null)
{
operationDescription.Behaviors.Add(new WsdlDocumentationImporter(operation.Documentation));
}
}
}
}
Im folgenden Codebeispiel wird eine Implementierung von GenerateContract veranschaulicht, die dem für einen Dienstvertrag generierten Code Kommentare hinzufügt.
public void GenerateContract(ServiceContractGenerationContext context)
{
Console.WriteLine("In generate contract.");
context.ContractType.Comments.AddRange(Formatter.FormatComments(commentText));
}
Im folgenden Codebeispiel werden die generierten Kommentare für den Dienstvertrag gezeigt.
/// From WSDL Documentation:
///
/// <summary>The string for the Name data member.</summary>
///
[System.Runtime.Serialization.DataMemberAttribute()]
public string Name
{
get
{
return this.NameField;
}
set
{
this.NameField = value;
}
}
'''From WSDL Documentation:
'''
'''<summary>The string for the Name data member.</summary>
'''
<System.Runtime.Serialization.DataMemberAttribute()> _
Public Property Name() As String
Get
Return Me.NameField
End Get
Set
Me.NameField = value
End Set
End Property
Hinweise
Implementiert die IServiceContractGenerationExtension-Schnittstelle für ein Vertragsverhalten (ein System.ServiceModel.Description.IContractBehavior-Typ), um den beim Kompilieren eines Vertrags oder Endpunkts generierten Code zu ändern.
In der Regel fügt eine benutzerdefinierte System.ServiceModel.Description.IWsdlImportExtension während des Aufrufs von ContractDescription.Behaviors oder ImportContract ein benutzerdefiniertes Vertragsverhalten in die ImportEndpoint-Auflistung ein.
Methoden
GenerateContract(ServiceContractGenerationContext) |
Implementieren Sie dies, um das Code Document Object Model vor dem Vertragsgenerierungsprozess zu ändern. |