我正在尝试编写一个审计日志方法,该方法将记录Linq-To-Sql模型中的所有更改。如何将未知类型传递给函数?
我想通过每种类型的更改获取所有更改循环调用我的方法,该方法为每种类型的对象创建日志记录。
我不确定这是否可能。
这是我的代码。当我尝试传入类型为typeof(原始)时,出现错误,因为它可能是我模型中的任何linq对象,所以我不知道类型在设计时。
ChangeSet changedObjects = this._lmsDb.GetChangeSet();
foreach (var update in changedObjects.Updates)
{
Type type = update.GetType();
var original = this._lmsDb.GetTable(type).GetOriginalEntityState(update);
// Error from <typeof(original)>
AuditLog au = AuditLogger.GetAuditLogRecord<typeof(original)>(original, update, "Update", "", userName);
this._lmsDb.AuditLogs.InsertOnSubmit(au);
}
是否有可能这样做?如果是这样,关于如何去做这件事的任何提示?
在java中,所有东西都从Object类扩展而来,我不知道这是否是一种好方法,或者即使C#支持这一点,但是您可以在typeof(Object)中发送吗?一个单纯的建议,可能不是一个答案。 – 2009-11-01 18:20:17