.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
doc.Transa ctionManag er or db.Transac tionManage r
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Dumb question: What is the difference? When to use one or the other? I've made the usual investigation and found these very good articles:
Can anyone add some additional insight? It appears that db.TransactionManager will serve in all situations. Thanks, Dale
Solved! Go to Solution.
Re: doc.Transa ctionManag er or db.Transac tionManage r
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Loooking at it quickly in reflector it inherits from TransactionManager and looks like it just adds the functionality to flush graphics
[Wrapper("AcTransactionManager")]
public sealed class TransactionManager : TransactionManager
{
// Methods
internal TransactionManager(IntPtr unmanagedObject, [MarshalAs(UnmanagedType.U1)] bool bAutoDelete);
protected sealed override void DeleteUnmanagedObject();
public void EnableGraphicsFlush([MarshalAs(UnmanagedType.U1)] bool doEnable);
public void FlushGraphics();
internal unsafe AcTransactionManager* GetImpObj();
public sealed override Transaction StartTransaction();
// Properties
public override Transaction TopTransaction { get; }
}
It uses a AppTransaction that inherits from Transaction looks it just overrides Commit() and uses base functionality then flushes the graphics.
internal sealed class AppTransaction : Transaction
{
// Fields
private TransactionManager m_mgr;
// Methods
protected internal AppTransaction(IntPtr unmanagedPointer, [MarshalAs(UnmanagedType.U1)] bool autoDelete, TransactionManager mgr) : base(unmanagedPointer, autoDelete)
{
this.m_mgr = mgr;
}
public sealed override void Commit()
{
base.Commit();
((TransactionManager) this.TransactionManager).FlushGraphics();
}
// Properties
public override TransactionManager TransactionManager
{
get
{
return this.m_mgr;
}
}
}
So looks like if want to call FlushGraphics for each commit then use the Document TransactionManager.
Now that I say that seems like I just saw Tony mention to use the Documents Transmamnger when it came to regenerating graphics or something similar.

