//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel
{
using System.ServiceModel.Configuration;
using System.ComponentModel;
[TypeConverter(typeof(TransactionProtocolConverter))]
public abstract class TransactionProtocol
{
public static TransactionProtocol Default
{
get { return OleTransactions; }
}
public static TransactionProtocol OleTransactions
{
get { return OleTransactionsProtocol.Instance; }
}
public static TransactionProtocol WSAtomicTransactionOctober2004
{
get { return WSAtomicTransactionOctober2004Protocol.Instance; }
}
public static TransactionProtocol WSAtomicTransaction11
{
get { return WSAtomicTransaction11Protocol.Instance; }
}
internal abstract string Name
{
get;
}
internal static bool IsDefined(TransactionProtocol transactionProtocol)
{
return transactionProtocol == TransactionProtocol.OleTransactions ||
transactionProtocol == TransactionProtocol.WSAtomicTransactionOctober2004 ||
transactionProtocol == TransactionProtocol.WSAtomicTransaction11;
}
}
class OleTransactionsProtocol : TransactionProtocol
{
static TransactionProtocol instance = new OleTransactionsProtocol();
internal static TransactionProtocol Instance
{
get { return instance; }
}
internal override string Name
{
get { return ConfigurationStrings.OleTransactions; }
}
}
class WSAtomicTransactionOctober2004Protocol : TransactionProtocol
{
static TransactionProtocol instance = new WSAtomicTransactionOctober2004Protocol();
internal static TransactionProtocol Instance
{
get { return instance; }
}
internal override string Name
{
get { return ConfigurationStrings.WSAtomicTransactionOctober2004; }
}
}
class WSAtomicTransaction11Protocol : TransactionProtocol
{
static TransactionProtocol instance = new WSAtomicTransaction11Protocol();
internal static TransactionProtocol Instance
{
get { return instance; }
}
internal override string Name
{
get { return ConfigurationStrings.WSAtomicTransaction11; }
}
}
}
|