Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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:
© 2017 Microsoft