IOperationContractGenerationExtension Interface

 

Defines the methods called during contract generation that can be used to modify the generated code for an operation.

Namespace:   System.ServiceModel.Description
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public interface class IOperationContractGenerationExtension

NameDescription
System_CAPS_pubmethodGenerateOperation(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#.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 3.0
Return to top
Show: