2
0

TransactionProtocol.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.ServiceModel
  5. {
  6. using System.ServiceModel.Configuration;
  7. using System.ComponentModel;
  8. [TypeConverter(typeof(TransactionProtocolConverter))]
  9. public abstract class TransactionProtocol
  10. {
  11. public static TransactionProtocol Default
  12. {
  13. get { return OleTransactions; }
  14. }
  15. public static TransactionProtocol OleTransactions
  16. {
  17. get { return OleTransactionsProtocol.Instance; }
  18. }
  19. public static TransactionProtocol WSAtomicTransactionOctober2004
  20. {
  21. get { return WSAtomicTransactionOctober2004Protocol.Instance; }
  22. }
  23. public static TransactionProtocol WSAtomicTransaction11
  24. {
  25. get { return WSAtomicTransaction11Protocol.Instance; }
  26. }
  27. internal abstract string Name
  28. {
  29. get;
  30. }
  31. internal static bool IsDefined(TransactionProtocol transactionProtocol)
  32. {
  33. return transactionProtocol == TransactionProtocol.OleTransactions ||
  34. transactionProtocol == TransactionProtocol.WSAtomicTransactionOctober2004 ||
  35. transactionProtocol == TransactionProtocol.WSAtomicTransaction11;
  36. }
  37. }
  38. class OleTransactionsProtocol : TransactionProtocol
  39. {
  40. static TransactionProtocol instance = new OleTransactionsProtocol();
  41. internal static TransactionProtocol Instance
  42. {
  43. get { return instance; }
  44. }
  45. internal override string Name
  46. {
  47. get { return ConfigurationStrings.OleTransactions; }
  48. }
  49. }
  50. class WSAtomicTransactionOctober2004Protocol : TransactionProtocol
  51. {
  52. static TransactionProtocol instance = new WSAtomicTransactionOctober2004Protocol();
  53. internal static TransactionProtocol Instance
  54. {
  55. get { return instance; }
  56. }
  57. internal override string Name
  58. {
  59. get { return ConfigurationStrings.WSAtomicTransactionOctober2004; }
  60. }
  61. }
  62. class WSAtomicTransaction11Protocol : TransactionProtocol
  63. {
  64. static TransactionProtocol instance = new WSAtomicTransaction11Protocol();
  65. internal static TransactionProtocol Instance
  66. {
  67. get { return instance; }
  68. }
  69. internal override string Name
  70. {
  71. get { return ConfigurationStrings.WSAtomicTransaction11; }
  72. }
  73. }
  74. }