ReliableMessagingVersion.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.ServiceModel
  5. {
  6. using System.ComponentModel;
  7. using System.ServiceModel.Configuration;
  8. using System.Xml;
  9. [TypeConverter(typeof(ReliableMessagingVersionConverter))]
  10. public abstract class ReliableMessagingVersion
  11. {
  12. XmlDictionaryString dictionaryNs;
  13. string ns;
  14. // Do not initialize directly, this constructor is for derived classes.
  15. internal ReliableMessagingVersion(string ns, XmlDictionaryString dictionaryNs)
  16. {
  17. this.ns = ns;
  18. this.dictionaryNs = dictionaryNs;
  19. }
  20. public static ReliableMessagingVersion Default
  21. {
  22. get { return System.ServiceModel.Channels.ReliableSessionDefaults.ReliableMessagingVersion; }
  23. }
  24. public static ReliableMessagingVersion WSReliableMessaging11
  25. {
  26. get { return WSReliableMessaging11Version.Instance; }
  27. }
  28. public static ReliableMessagingVersion WSReliableMessagingFebruary2005
  29. {
  30. get { return WSReliableMessagingFebruary2005Version.Instance; }
  31. }
  32. internal XmlDictionaryString DictionaryNamespace
  33. {
  34. get { return this.dictionaryNs; }
  35. }
  36. internal string Namespace
  37. {
  38. get { return this.ns; }
  39. }
  40. internal static bool IsDefined(ReliableMessagingVersion reliableMessagingVersion)
  41. {
  42. return (reliableMessagingVersion == WSReliableMessaging11)
  43. || (reliableMessagingVersion == WSReliableMessagingFebruary2005);
  44. }
  45. }
  46. class WSReliableMessaging11Version : ReliableMessagingVersion
  47. {
  48. static ReliableMessagingVersion instance = new WSReliableMessaging11Version();
  49. WSReliableMessaging11Version()
  50. : base(Wsrm11Strings.Namespace, DXD.Wsrm11Dictionary.Namespace)
  51. {
  52. }
  53. internal static ReliableMessagingVersion Instance
  54. {
  55. get { return instance; }
  56. }
  57. public override string ToString()
  58. {
  59. return "WSReliableMessaging11";
  60. }
  61. }
  62. class WSReliableMessagingFebruary2005Version : ReliableMessagingVersion
  63. {
  64. WSReliableMessagingFebruary2005Version()
  65. : base(WsrmFeb2005Strings.Namespace, XD.WsrmFeb2005Dictionary.Namespace)
  66. {
  67. }
  68. static ReliableMessagingVersion instance = new WSReliableMessagingFebruary2005Version();
  69. internal static ReliableMessagingVersion Instance
  70. {
  71. get { return instance; }
  72. }
  73. public override string ToString()
  74. {
  75. return "WSReliableMessagingFebruary2005";
  76. }
  77. }
  78. }