OperationContractGenerationContext.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Description / OperationContractGenerationContext.cs / 1 / OperationContractGenerationContext.cs

                            //------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------

namespace System.ServiceModel.Description 
{
    using System; 
    using System.Collections.Generic; 
    using System.CodeDom;
    using System.CodeDom.Compiler; 
    using System.ServiceModel;

    public class OperationContractGenerationContext
    { 
        readonly CodeMemberMethod syncMethod;
        readonly CodeMemberMethod beginMethod; 
        readonly ServiceContractGenerationContext contract; 
        readonly CodeMemberMethod endMethod;
        readonly OperationDescription operation; 
        readonly ServiceContractGenerator serviceContractGenerator;
        readonly CodeTypeDeclaration declaringType;

        CodeTypeReference declaringTypeReference; 

        OperationContractGenerationContext(ServiceContractGenerator serviceContractGenerator, ServiceContractGenerationContext contract, OperationDescription operation, CodeTypeDeclaration declaringType) 
        { 
            if (serviceContractGenerator == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("serviceContractGenerator")); 
            if (contract == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("contract"));
            if (declaringType == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("declaringType")); 

            this.serviceContractGenerator = serviceContractGenerator; 
            this.contract = contract; 
            this.operation = operation;
            this.declaringType = declaringType; 
        }

        public OperationContractGenerationContext(ServiceContractGenerator serviceContractGenerator, ServiceContractGenerationContext contract, OperationDescription operation, CodeTypeDeclaration declaringType, CodeMemberMethod syncMethod, CodeMemberMethod beginMethod, CodeMemberMethod endMethod)
            : this(serviceContractGenerator, contract, operation, declaringType) 
        {
            if (syncMethod == null) 
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("syncMethod")); 
            if (beginMethod == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("beginMethod")); 
            if (endMethod == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("endMethod"));

            this.syncMethod = syncMethod; 
            this.beginMethod = beginMethod;
            this.endMethod = endMethod; 
        } 

        public OperationContractGenerationContext(ServiceContractGenerator serviceContractGenerator, ServiceContractGenerationContext contract, OperationDescription operation, CodeTypeDeclaration declaringType, CodeMemberMethod method) 
            : this(serviceContractGenerator, contract, operation, declaringType)
        {
            if (method == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("method")); 

            this.syncMethod = method; 
            this.beginMethod = null; 
            this.endMethod = null;
        } 

        public ServiceContractGenerationContext Contract
        {
            get { return this.contract; } 
        }
 
        public CodeTypeDeclaration DeclaringType 
        {
            get { return this.declaringType; } 
        }

        internal CodeTypeReference DeclaringTypeReference
        { 
            get { return this.declaringTypeReference; }
            set { this.declaringTypeReference = value; } 
        } 

        public CodeMemberMethod BeginMethod 
        {
            get { return this.beginMethod; }
        }
 
        public CodeMemberMethod EndMethod
        { 
            get { return this.endMethod; } 
        }
 
        public CodeMemberMethod SyncMethod
        {
            get { return this.syncMethod; }
        } 

        public bool IsAsync 
        { 
            get { return this.beginMethod != null; }
        } 

        // true if this operation was declared somewhere up the hierarchy (rather than at this level)
        internal bool IsInherited
        { 
            get { return !(this.declaringType == contract.ContractType || this.declaringType == contract.DuplexCallbackType); }
        } 
 
        public OperationDescription Operation
        { 
            get { return this.operation; }
        }

        public ServiceContractGenerator ServiceContractGenerator 
        {
            get { return this.serviceContractGenerator; } 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK