File: FrameworkFork\System.ServiceModel\System\ServiceModel\Security\SecureConversationVersion.cs
Web Access
Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using Microsoft.Xml;
 
namespace System.ServiceModel.Security
{
    public abstract class SecureConversationVersion
    {
        private readonly XmlDictionaryString _scNamespace;
        private readonly XmlDictionaryString _prefix;
 
        internal SecureConversationVersion(XmlDictionaryString ns, XmlDictionaryString prefix)
        {
            _scNamespace = ns;
            _prefix = prefix;
        }
 
        public XmlDictionaryString Namespace
        {
            get
            {
                return _scNamespace;
            }
        }
 
        public XmlDictionaryString Prefix
        {
            get
            {
                return _prefix;
            }
        }
 
        public static SecureConversationVersion Default
        {
            get { return WSSecureConversationFeb2005; }
        }
 
        public static SecureConversationVersion WSSecureConversationFeb2005
        {
            get { return WSSecureConversationVersionFeb2005.Instance; }
        }
 
        public static SecureConversationVersion WSSecureConversation13
        {
            get { return WSSecureConversationVersion13.Instance; }
        }
 
        internal class WSSecureConversationVersionFeb2005 : SecureConversationVersion
        {
            private static readonly WSSecureConversationVersionFeb2005 s_instance = new WSSecureConversationVersionFeb2005();
 
            protected WSSecureConversationVersionFeb2005()
                : base(XD.SecureConversationFeb2005Dictionary.Namespace, XD.SecureConversationFeb2005Dictionary.Prefix)
            {
            }
 
            public static SecureConversationVersion Instance
            {
                get
                {
                    return s_instance;
                }
            }
        }
 
        internal class WSSecureConversationVersion13 : SecureConversationVersion
        {
            private static readonly WSSecureConversationVersion13 s_instance = new WSSecureConversationVersion13();
 
            protected WSSecureConversationVersion13()
                : base(DXD.SecureConversationDec2005Dictionary.Namespace, DXD.SecureConversationDec2005Dictionary.Prefix)
            {
            }
 
            public static SecureConversationVersion Instance
            {
                get
                {
                    return s_instance;
                }
            }
        }
    }
}