1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Description
{
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.CodeDom;
using System.CodeDom.Compiler;
public class ServiceContractGenerationContext
{
readonly ServiceContractGenerator serviceContractGenerator;
readonly ContractDescription contract;
readonly CodeTypeDeclaration contractType;
readonly CodeTypeDeclaration duplexCallbackType;
readonly Collection<OperationContractGenerationContext> operations = new Collection<OperationContractGenerationContext>();
CodeNamespace codeNamespace;
CodeTypeDeclaration channelType;
CodeTypeReference channelTypeReference;
CodeTypeDeclaration clientType;
CodeTypeReference clientTypeReference;
CodeTypeReference contractTypeReference;
CodeTypeReference duplexCallbackTypeReference;
ServiceContractGenerator.CodeTypeFactory typeFactory;
public ServiceContractGenerationContext(ServiceContractGenerator serviceContractGenerator, ContractDescription contract, CodeTypeDeclaration contractType)
{
if (serviceContractGenerator == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("serviceContractGenerator"));
if (contract == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("contract"));
if (contractType == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("contractType"));
this.serviceContractGenerator = serviceContractGenerator;
this.contract = contract;
this.contractType = contractType;
}
public ServiceContractGenerationContext(ServiceContractGenerator serviceContractGenerator, ContractDescription contract, CodeTypeDeclaration contractType, CodeTypeDeclaration duplexCallbackType)
: this(serviceContractGenerator, contract, contractType)
{
this.duplexCallbackType = duplexCallbackType;
}
internal CodeTypeDeclaration ChannelType
{
get { return this.channelType; }
set { this.channelType = value; }
}
internal CodeTypeReference ChannelTypeReference
{
get { return this.channelTypeReference; }
set { this.channelTypeReference = value; }
}
internal CodeTypeDeclaration ClientType
{
get { return this.clientType; }
set { this.clientType = value; }
}
internal CodeTypeReference ClientTypeReference
{
get { return this.clientTypeReference; }
set { this.clientTypeReference = value; }
}
public ContractDescription Contract
{
get { return this.contract; }
}
public CodeTypeDeclaration ContractType
{
get { return this.contractType; }
}
internal CodeTypeReference ContractTypeReference
{
get { return this.contractTypeReference; }
set { this.contractTypeReference = value; }
}
public CodeTypeDeclaration DuplexCallbackType
{
get { return this.duplexCallbackType; }
}
internal CodeTypeReference DuplexCallbackTypeReference
{
get { return this.duplexCallbackTypeReference; }
set { this.duplexCallbackTypeReference = value; }
}
internal CodeNamespace Namespace
{
get { return this.codeNamespace; }
set { this.codeNamespace = value; }
}
public Collection<OperationContractGenerationContext> Operations
{
get { return this.operations; }
}
public ServiceContractGenerator ServiceContractGenerator
{
get { return this.serviceContractGenerator; }
}
internal ServiceContractGenerator.CodeTypeFactory TypeFactory
{
get { return this.typeFactory; }
set { this.typeFactory = value; }
}
}
}
|