text: // 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 TrustVersion
      {
          private readonly XmlDictionaryString _trustNamespace;
          private readonly XmlDictionaryString _prefix;
  
          internal TrustVersion(XmlDictionaryString ns, XmlDictionaryString prefix)
          {
              _trustNamespace = ns;
              _prefix = prefix;
          }
  
          public XmlDictionaryString Namespace
          {
              get
              {
                  return _trustNamespace;
              }
          }
  
          public XmlDictionaryString Prefix
          {
              get
              {
                  return _prefix;
              }
          }
  
          public static TrustVersion Default
          {
              get { return WSTrustFeb2005; }
          }
  
          public static TrustVersion WSTrustFeb2005
          {
              get { return WSTrustVersionFeb2005.Instance; }
          }
  
          public static TrustVersion WSTrust13
          {
              get { return WSTrustVersion13.Instance; }
          }
  
          internal class WSTrustVersionFeb2005 : TrustVersion
          {
              private static readonly WSTrustVersionFeb2005 s_instance = new WSTrustVersionFeb2005();
  
              protected WSTrustVersionFeb2005()
                  : base(XD.TrustFeb2005Dictionary.Namespace, XD.TrustFeb2005Dictionary.Prefix)
              {
              }
  
              public static TrustVersion Instance
              {
                  get
                  {
                      return s_instance;
                  }
              }
          }
  
          internal class WSTrustVersion13 : TrustVersion
          {
              private static readonly WSTrustVersion13 s_instance = new WSTrustVersion13();
  
              protected WSTrustVersion13()
                  : base(DXD.TrustDec2005Dictionary.Namespace, DXD.TrustDec2005Dictionary.Prefix)
              {
              }
  
              public static TrustVersion Instance
              {
                  get
                  {
                      return s_instance;
                  }
              }
          }
      }
  }
  