IServiceContractGenerationExtension Gränssnitt
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Definierar de metoder som anropas under kontraktsgenereringen och som kan användas för att ändra den genererade koden för ett tjänstkontrakt.
public interface class IServiceContractGenerationExtension
public interface IServiceContractGenerationExtension
type IServiceContractGenerationExtension = interface
Public Interface IServiceContractGenerationExtension
Exempel
Följande kodexempel visar hur du lägger till en IServiceContractGenerationExtension i ContractDescription.Behaviors egenskapen under anropet till ImportContract.
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));
}
}
}
}
Följande kodexempel visar implementeringen av GenerateContract som lägger till kommentarer till koden som genereras för ett tjänstkontrakt.
public void GenerateContract(ServiceContractGenerationContext context)
{
Console.WriteLine("In generate contract.");
context.ContractType.Comments.AddRange(Formatter.FormatComments(commentText));
}
I följande kodexempel visas de genererade kommentarerna i tjänstkontraktet.
/// 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
Kommentarer
IServiceContractGenerationExtension Implementera gränssnittet på ett kontraktsbeteende (en System.ServiceModel.Description.IContractBehavior typ) så att du kan ändra koden som genereras när ett kontrakt eller en slutpunkt kompileras till kod.
Vanligtvis infogar en anpassad System.ServiceModel.Description.IWsdlImportExtension infogning av ett anpassat kontrakt i ContractDescription.Behaviors samlingen under anropet till ImportContract eller ImportEndpoint.
Metoder
| Name | Description |
|---|---|
| GenerateContract(ServiceContractGenerationContext) |
Implementera för att ändra koddokumentets objektmodell före kontraktgenereringsprocessen. |