IOperationContractGenerationExtension Interface
Defines the methods called during contract generation that can be used to modify the generated code for an operation.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
| Name | Description | |
|---|---|---|
![]() | GenerateOperation(OperationContractGenerationContext^) | Implement to modify the code document object model prior to the contract generation process. |
Implement the IOperationContractGenerationExtension interface on an operation behavior (a System.ServiceModel.Description::IOperationBehavior type) to enable you to modify the code generated when a contract or endpoint is compiled into code. Typically, a custom System.ServiceModel.Description::IWsdlImportExtension inserts a custom operation behavior into the OperationDescription::Behaviors collection during the call to IWsdlImportExtension::ImportContract or IWsdlImportExtension::ImportEndpoint.
The following code example shows the implementation of the GenerateOperation method that adds a string to the comments section of the operation using the System.CodeDom namespace.
The following code example shows how the operation behavior that implements IOperationContractGenerationExtension is inserted into the OperationDescription::Behaviors collection during the call to IWsdlImportExtension::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)); } } } }
Finally, the following code example shows the operation generated in both Visual Basic and C#.
Available since 3.0
