Compartilhar via


OperationContractGenerationContext Classe

Definição

Passado para o método GenerateOperation(OperationContractGenerationContext) para habilitar a modificação de um contrato de operação e seu contexto antes de gerar código.

public ref class OperationContractGenerationContext
public class OperationContractGenerationContext
type OperationContractGenerationContext = class
Public Class OperationContractGenerationContext
Herança
OperationContractGenerationContext

Exemplos

O exemplo a seguir mostra o uso do OperationContractGenerationContext objeto passado para o IOperationContractGenerationExtension.GenerateOperation método para adicionar comentários de código extraídos de elementos WSDL personalizados.

public void GenerateOperation(OperationContractGenerationContext context)
{
  context.SyncMethod.Comments.AddRange(Formatter.FormatComments(commentText));
  Console.WriteLine("In generate operation.");
}

O exemplo de código a seguir mostra os comentários de código resultantes.

/// From WSDL Documentation:
///
/// <summary>This contract is a stateless contract that provides a mechanism for
/// computing the nth Fibonacci term.</summary>
///
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://microsoft.wcf.documentation", ConfigurationName="IFibonacci")]
public interface IFibonacci
{

    /// From WSDL Documentation:
    ///
    /// <summary>The Compute operation returns the nth Fibonacci number.  Because it
    /// uses dual recursion it's very inefficient and therefore useful to demonstrate
    /// caching.</summary><returns>The nth Fibonacci number.</returns><param
    /// name="num">The value to use when computing the Fibonacci number.</param>
    ///
    [System.ServiceModel.OperationContractAttribute(Action="http://microsoft.wcf.documentation/IFibonacci/Compute", ReplyAction="http://microsoft.wcf.documentation/IFibonacci/ComputeResponse")]
    int Compute(int num);

    /// From WSDL Documentation:
    ///
    /// <summary>The GetPerson operation tests custom WSDL documentation
    /// generation.</summary><returns>The Person object to be returned.</returns><param
    /// name="FirstParameter">The value for the first parameter.</param><param
    /// name="SecondParameter">The value for the second parameter.</param>
    ///
    [System.ServiceModel.OperationContractAttribute(Action="http://microsoft.wcf.documentation/IFibonacci/GetPerson", ReplyAction="http://microsoft.wcf.documentation/IFibonacci/GetPersonResponse")]
    Microsoft.WCF.Documentation.Person GetPerson(int FirstParameter, int SecondParameter);
}

'''From WSDL Documentation:
'''
'''<summary>This contract is a stateless contract that provides a mechanism for 
'''computing the nth Fibonacci term.</summary> 
'''
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0"),  _
 System.ServiceModel.ServiceContractAttribute([Namespace]:="http://microsoft.wcf.documentation", ConfigurationName:="IFibonacci")>  _
Public Interface IFibonacci
    
    '''From WSDL Documentation:
    '''
    '''<summary>The Compute operation returns the nth Fibonacci number.  Because it 
    '''uses dual recursion it's very inefficient and therefore useful to demonstrate 
    '''caching.</summary><returns>The nth Fibonacci number.</returns><param 
    '''name="num">The value to use when computing the Fibonacci number.</param> 
    '''
    <System.ServiceModel.OperationContractAttribute(Action:="http://microsoft.wcf.documentation/IFibonacci/Compute", ReplyAction:="http://microsoft.wcf.documentation/IFibonacci/ComputeResponse")>  _
    Function Compute(ByVal num As Integer) As Integer
    
    '''From WSDL Documentation:
    '''
    '''<summary>The GetPerson operation tests custom WSDL documentation 
    '''generation.</summary><returns>The Person object to be returned.</returns><param 
    '''name="FirstParameter">The value for the first parameter.</param><param 
    '''name="SecondParameter">The value for the second parameter.</param> 
    '''
    <System.ServiceModel.OperationContractAttribute(Action:="http://microsoft.wcf.documentation/IFibonacci/GetPerson", ReplyAction:="http://microsoft.wcf.documentation/IFibonacci/GetPersonResponse")>  _
    Function GetPerson(ByVal FirstParameter As Integer, ByVal SecondParameter As Integer) As Microsoft.WCF.Documentation.Person
End Interface

Comentários

Use o OperationContractGenerationContext objeto passado para o IOperationContractGenerationExtension.GenerateOperation método para modificar o modelo de objeto do documento de código antes da geração de código. Normalmente, a System.ServiceModel.Description.IOperationContractGenerationExtension interface é implementada em uma implementação personalizada System.ServiceModel.Description.IWsdlImportExtension que é usada para importar elementos WSDL personalizados ou modificar o código no nível do serviço ou da operação. Para modificar o código no nível do serviço, consulte System.ServiceModel.Description.IServiceContractGenerationExtension.

Construtores

OperationContractGenerationContext(ServiceContractGenerator, ServiceContractGenerationContext, OperationDescription, CodeTypeDeclaration, CodeMemberMethod)

Inicializa uma nova instância da classe OperationContractGenerationContext usando o gerador de contrato, o contexto de contrato, a descrição da operação, a declaração de tipo de código, o método de sincronização e o método de tarefa especificados.

OperationContractGenerationContext(ServiceContractGenerator, ServiceContractGenerationContext, OperationDescription, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod)

Inicializa uma nova instância da classe OperationContractGenerationContext usando o gerador de contrato especificado, o contexto de contrato, a descrição da operação, a declaração de tipo de código e o método.

OperationContractGenerationContext(ServiceContractGenerator, ServiceContractGenerationContext, OperationDescription, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, CodeMemberMethod)

Inicializa uma nova instância da classe OperationContractGenerationContext.

OperationContractGenerationContext(ServiceContractGenerator, ServiceContractGenerationContext, OperationDescription, CodeTypeDeclaration, CodeMemberMethod, CodeMemberMethod, CodeMemberMethod, CodeMemberMethod)

Inicializa uma nova instância da classe OperationContractGenerationContext usando o gerador de contrato, o contexto de contrato, a descrição da operação, a declaração de tipo de código, o método de sincronização, o método de início, o método de término e o método de tarefa especificados.

Propriedades

BeginMethod

Obtém o CodeMemberMethod para uma operação assíncrona de início.

Contract

Obtém o contexto de geração de código para o contrato de serviço.

DeclaringType

Obtém o tipo de declaração para a operação atual.

EndMethod

Obtém a declaração de operação assíncrona final.

IsAsync

Obtém um valor que indica se os métodos assíncronos são gerados para a operação atual.

IsTask

Obtém um valor que indica se uma tarefa é gerada para a operação atual.

Operation

Obtém o OperationDescription para a operação atual.

ServiceContractGenerator

Obtém o ServiceContractGenerator que gera a operação atual.

SyncMethod

Obtém o CodeMemberMethod para a operação assíncrona.

TaskMethod

Obtém o CodeMemberMethod para a operação da tarefa.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a