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 127 128 129 130 131 132 133 134 135 136 137
|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.Workflow.Activities
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics.CodeAnalysis;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Dispatcher;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.ComponentModel.Serialization;
using System.Xml;
[Serializable]
internal sealed class LogicalChannel
{
string configurationName = string.Empty;
IDictionary<string, string> context = SerializableReadOnlyDictionary<string, string>.Empty;
Type contractType = null;
string customAddress = null;
bool initialized = false;
Guid instanceId;
string name = null;
public LogicalChannel()
{
this.instanceId = Guid.NewGuid();
}
public LogicalChannel(string name, Type contractType)
{
this.instanceId = Guid.NewGuid();
this.name = name;
this.contractType = contractType;
}
[DefaultValue(null)]
[Browsable(false)]
public string ConfigurationName
{
get
{
return this.configurationName;
}
}
[Browsable(false)]
public IDictionary<string, string> Context
{
get
{
return this.context;
}
set
{
if (value != null)
{
this.context = new ContextDictionary(value);
}
else
{
this.context = SerializableReadOnlyDictionary<string, string>.Empty;
}
}
}
[DefaultValue(null)]
[Browsable(false)]
public Type ContractType
{
get
{
return this.contractType;
}
}
[DefaultValue(null)]
[Browsable(false)]
public string CustomAddress
{
get
{
return this.customAddress;
}
}
[DefaultValue(false)]
[Browsable(false)]
public bool Initialized
{
get
{
return this.initialized;
}
}
[DefaultValue(null)]
[Browsable(false)]
public string Name
{
get
{
return this.name;
}
}
internal Guid InstanceId
{
get
{
return this.instanceId;
}
}
public void Initialize(string configurationName, string customAddress)
{
if (this.Initialized)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new InvalidOperationException(SR2.GetString(SR2.Error_LogicalChannelAlreadyInitialized, this.Name)));
}
this.configurationName = configurationName ?? string.Empty;
this.customAddress = customAddress;
this.initialized = true;
}
}
}
|