【发布时间】:2011-07-27 15:27:47
【问题描述】:
为了向我们的应用程序添加审计跟踪,我们决定使用 NHibernate.Envers。为了允许应用特定的修订跟踪,DefaultRevisionEntity 扩展了用户特定的数据。
public virtual void NewRevision( object revisionEntity )
{
var revisionData = revisionEntity as Revision;
if( revisionData != null )
{
// Set additional audit data.
var identity = UserAccessor.CurrentIdentity;
revisionData.UserId = identity.UserId;
revisionData.EmployeeId = identity.EmployeeId;
revisionData.UserName = identity.Name;
}
}
Envers 决定使用哪个 RevisionListener,具体取决于您的类所使用的 RevisionEntity 属性:
[RevisionEntity( typeof( RevisionListener ) )]
我正在使用 ServiceLocator 模式将我的访问器注入到RevisionListener。目前这是我必须使用 ServiceLocator 并且真的想摆脱它的唯一地方。
是否有另一种灵活的方式将我的 UserAccessor 注入到 RevisionEntity 中?
【问题讨论】:
标签: c# nhibernate spring.net nhibernate-envers