Поделиться через


OperationContractGenerationContext Класс

Определение

Передается в метод GenerateOperation(OperationContractGenerationContext) для разрешения изменения контракта операции и его контекста до создания кода.

public ref class OperationContractGenerationContext
public class OperationContractGenerationContext
type OperationContractGenerationContext = class
Public Class OperationContractGenerationContext
Наследование
OperationContractGenerationContext

Примеры

В следующем примере кода показано использование объекта OperationContractGenerationContext, передаваемого в метод IOperationContractGenerationExtension.GenerateOperation для добавления комментариев к коду, извлеченных из настраиваемых элементов языка WSDL.

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

В следующем примере показан результат добавления комментариев к коду.

/// 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

Комментарии

Объект OperationContractGenerationContext, передаваемый в метод IOperationContractGenerationExtension.GenerateOperation, используется для изменения Code Document Object Model до создания кода. Обычно интерфейс System.ServiceModel.Description.IOperationContractGenerationExtension реализуется в пользовательской реализации System.ServiceModel.Description.IWsdlImportExtension, которая используется для импорта настраиваемых элементов языка WSDL либо для изменения кода на уровне службы или операции. Изменение кода на уровне службы см. в разделе System.ServiceModel.Description.IServiceContractGenerationExtension.

Конструкторы

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

Инициализирует новый экземпляр класса OperationContractGenerationContext, используя заданный генератор контракта, контекст контракта, описание операции, объявление типа кода, метод синхронизации и метод задачи.

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

Инициализирует новый экземпляр класса OperationContractGenerationContext, используя заданные генератор контракта, контекст контракта, описание операции, объявление типа кода и метод.

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

Инициализирует новый экземпляр класса OperationContractGenerationContext.

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

Инициализирует новый экземпляр класса OperationContractGenerationContext, используя заданный генератор контракта, контекст контракта, описание операции, объявление типа кода, метод синхронизации, метод начала, метод завершения и метод задачи.

Свойства

BeginMethod

Возвращает объект CodeMemberMethod для асинхронного начала операции.

Contract

Возвращает контекст создания кода для контракта службы.

DeclaringType

Возвращает объявляющий тип для текущей операции.

EndMethod

Возвращает объявление операции асинхронного завершения.

IsAsync

Возвращает значение, которое указывает, создаются ли асинхронные методы для текущей операции.

IsTask

Получает значение, которое указывает, создается ли задача для текущей операции.

Operation

Возвращает объект OperationDescription для текущей операции.

ServiceContractGenerator

Возвращает объект ServiceContractGenerator, который создает текущую операцию.

SyncMethod

Возвращает объект CodeMemberMethod для синхронной операции.

TaskMethod

Получает объект CodeMemberMethod для операции задачи.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к