File: System\Activities\NativeActivityTransactionContext.cs
Project: ndp\cdf\src\NetFx40\System.Activities\System.Activities.csproj (System.Activities)
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
 
namespace System.Activities
{
    using System.Activities.Runtime;
    using System.Runtime;
    using System.Transactions;
    
    [Fx.Tag.XamlVisible(false)]
    public sealed class NativeActivityTransactionContext : NativeActivityContext
    {
        ActivityExecutor executor;
        RuntimeTransactionHandle transactionHandle;
 
        internal NativeActivityTransactionContext(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarks, RuntimeTransactionHandle handle)
            : base(instance, executor, bookmarks)
        {
            this.executor = executor;
            this.transactionHandle = handle;
        }
 
        public void SetRuntimeTransaction(Transaction transaction)
        {
            ThrowIfDisposed();
 
            if (transaction == null)
            {
                throw FxTrace.Exception.ArgumentNull("transaction");
            }
 
            this.executor.SetTransaction(this.transactionHandle, transaction, transactionHandle.Owner, this.CurrentInstance);
        }
    }
}