using System; namespace Csla { /// /// Marks a DataPortal_XYZ method to run within /// the specified transactional context. /// /// /// /// Each business object method may be marked with this attribute /// to indicate which type of transactional technology should /// be used by the server-side DataPortal. The possible options /// are listed in the /// TransactionalTypes enum. /// /// If the Transactional attribute is not applied to a /// DataPortal_XYZ method then the /// Manual option /// is assumed. /// /// If the Transactional attribute is applied with no explicit /// choice for transactionType then the /// EnterpriseServices /// option is assumed. /// /// Both the EnterpriseServices and TransactionScope options provide /// 2-phase distributed transactional support. /// /// [AttributeUsage(AttributeTargets.Method)] public sealed class TransactionalAttribute : Attribute { private TransactionalTypes _type; /// /// Marks a method to run within a COM+ /// transactional context. /// public TransactionalAttribute() { _type = TransactionalTypes.EnterpriseServices; } /// /// Marks a method to run within the specified /// type of transactional context. /// /// /// Specifies the transactional context within which the /// method should run. public TransactionalAttribute(TransactionalTypes transactionType) { _type = transactionType; } /// /// Gets the type of transaction requested by the /// business object method. /// public TransactionalTypes TransactionType { get { return _type; } } } }