177 lines
6.7 KiB
C#
177 lines
6.7 KiB
C#
|
//------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//------------------------------------------------------------
|
||
|
namespace System.ServiceModel.Channels
|
||
|
{
|
||
|
using System.Runtime.Serialization;
|
||
|
using System.Xml;
|
||
|
using System.ServiceModel.Security;
|
||
|
|
||
|
public sealed class AddressingVersion
|
||
|
{
|
||
|
string ns;
|
||
|
XmlDictionaryString dictionaryNs;
|
||
|
MessagePartSpecification signedMessageParts;
|
||
|
string toStringFormat;
|
||
|
string anonymous;
|
||
|
XmlDictionaryString dictionaryAnonymous;
|
||
|
Uri anonymousUri;
|
||
|
Uri noneUri;
|
||
|
string faultAction;
|
||
|
string defaultFaultAction;
|
||
|
|
||
|
static AddressingVersion none = new AddressingVersion(AddressingNoneStrings.Namespace, XD.AddressingNoneDictionary.Namespace,
|
||
|
SR.AddressingNoneToStringFormat, new MessagePartSpecification(), null, null, null, null, null);
|
||
|
|
||
|
static AddressingVersion addressing10 = new AddressingVersion(Addressing10Strings.Namespace,
|
||
|
XD.Addressing10Dictionary.Namespace, SR.Addressing10ToStringFormat, Addressing10SignedMessageParts,
|
||
|
Addressing10Strings.Anonymous, XD.Addressing10Dictionary.Anonymous, Addressing10Strings.NoneAddress,
|
||
|
Addressing10Strings.FaultAction, Addressing10Strings.DefaultFaultAction);
|
||
|
static MessagePartSpecification addressing10SignedMessageParts;
|
||
|
|
||
|
static AddressingVersion addressing200408 = new AddressingVersion(Addressing200408Strings.Namespace,
|
||
|
XD.Addressing200408Dictionary.Namespace, SR.Addressing200408ToStringFormat, Addressing200408SignedMessageParts,
|
||
|
Addressing200408Strings.Anonymous, XD.Addressing200408Dictionary.Anonymous, null,
|
||
|
Addressing200408Strings.FaultAction, Addressing200408Strings.DefaultFaultAction);
|
||
|
static MessagePartSpecification addressing200408SignedMessageParts;
|
||
|
|
||
|
AddressingVersion(string ns, XmlDictionaryString dictionaryNs, string toStringFormat,
|
||
|
MessagePartSpecification signedMessageParts, string anonymous, XmlDictionaryString dictionaryAnonymous, string none, string faultAction, string defaultFaultAction)
|
||
|
{
|
||
|
this.ns = ns;
|
||
|
this.dictionaryNs = dictionaryNs;
|
||
|
this.toStringFormat = toStringFormat;
|
||
|
this.signedMessageParts = signedMessageParts;
|
||
|
this.anonymous = anonymous;
|
||
|
this.dictionaryAnonymous = dictionaryAnonymous;
|
||
|
|
||
|
if (anonymous != null)
|
||
|
{
|
||
|
this.anonymousUri = new Uri(anonymous);
|
||
|
}
|
||
|
|
||
|
if (none != null)
|
||
|
{
|
||
|
this.noneUri = new Uri(none);
|
||
|
}
|
||
|
|
||
|
this.faultAction = faultAction;
|
||
|
this.defaultFaultAction = defaultFaultAction;
|
||
|
}
|
||
|
|
||
|
public static AddressingVersion WSAddressingAugust2004
|
||
|
{
|
||
|
get { return addressing200408; }
|
||
|
}
|
||
|
|
||
|
public static AddressingVersion WSAddressing10
|
||
|
{
|
||
|
get { return addressing10; }
|
||
|
}
|
||
|
|
||
|
public static AddressingVersion None
|
||
|
{
|
||
|
get { return none; }
|
||
|
}
|
||
|
|
||
|
internal string Namespace
|
||
|
{
|
||
|
get { return ns; }
|
||
|
}
|
||
|
|
||
|
static MessagePartSpecification Addressing10SignedMessageParts
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (addressing10SignedMessageParts == null)
|
||
|
{
|
||
|
MessagePartSpecification s = new MessagePartSpecification(
|
||
|
new XmlQualifiedName(AddressingStrings.To, Addressing10Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.From, Addressing10Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.FaultTo, Addressing10Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.ReplyTo, Addressing10Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.MessageId, Addressing10Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.RelatesTo, Addressing10Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.Action, Addressing10Strings.Namespace)
|
||
|
);
|
||
|
s.MakeReadOnly();
|
||
|
addressing10SignedMessageParts = s;
|
||
|
}
|
||
|
|
||
|
return addressing10SignedMessageParts;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static MessagePartSpecification Addressing200408SignedMessageParts
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (addressing200408SignedMessageParts == null)
|
||
|
{
|
||
|
MessagePartSpecification s = new MessagePartSpecification(
|
||
|
new XmlQualifiedName(AddressingStrings.To, Addressing200408Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.From, Addressing200408Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.FaultTo, Addressing200408Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.ReplyTo, Addressing200408Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.MessageId, Addressing200408Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.RelatesTo, Addressing200408Strings.Namespace),
|
||
|
new XmlQualifiedName(AddressingStrings.Action, Addressing200408Strings.Namespace)
|
||
|
);
|
||
|
s.MakeReadOnly();
|
||
|
addressing200408SignedMessageParts = s;
|
||
|
}
|
||
|
|
||
|
return addressing200408SignedMessageParts;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal XmlDictionaryString DictionaryNamespace
|
||
|
{
|
||
|
get { return dictionaryNs; }
|
||
|
}
|
||
|
|
||
|
internal string Anonymous
|
||
|
{
|
||
|
get { return anonymous; }
|
||
|
}
|
||
|
|
||
|
internal XmlDictionaryString DictionaryAnonymous
|
||
|
{
|
||
|
get { return dictionaryAnonymous; }
|
||
|
}
|
||
|
|
||
|
internal Uri AnonymousUri
|
||
|
{
|
||
|
get { return anonymousUri; }
|
||
|
}
|
||
|
|
||
|
internal Uri NoneUri
|
||
|
{
|
||
|
get { return noneUri; }
|
||
|
}
|
||
|
|
||
|
internal string FaultAction // the action for addressing faults
|
||
|
{
|
||
|
get { return faultAction; }
|
||
|
}
|
||
|
|
||
|
internal string DefaultFaultAction // a default string that can be used for non-addressing faults
|
||
|
{
|
||
|
get { return defaultFaultAction; }
|
||
|
}
|
||
|
|
||
|
internal MessagePartSpecification SignedMessageParts
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return this.signedMessageParts;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public override string ToString()
|
||
|
{
|
||
|
return SR.GetString(toStringFormat, Namespace);
|
||
|
}
|
||
|
}
|
||
|
}
|