本文介绍了为什么GetGenericTypeDefinition失败?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一段代码,当被我的存储库保存时,需要检查一个实体.我在保存时有一个NHibernate拦截器来检查它,但是当我调用GetGenericTypeDefinition
函数时,代码失败并显示以下错误:
I have a piece of code which needs to check an entity when being saved by my Repository. I have an NHibernate interceptor on the save to check this but when I call the GetGenericTypeDefinition
function the code fails with the error:
代码是这样的:
protected override object PerformSaveOrUpdate(SaveOrUpdateEvent evt)
{
if (evt.Entity.GetType().GetGenericTypeDefinition() == typeof(IChild<>))
{
var parent = (evt.Entity as IChild<Entity>).Parent;
if (parent != null)
{
parent.UpdateCacheCounters();
evt.Session.Save(parent);
}
}
}
任何帮助将不胜感激.
推荐答案
Type type = evt.Entity.GetType();
if(
type.IsGenericType &&
type.GetGenericTypeDefinition() == typeof(IChild<>)
)
尝试一下.根据 http://msdn.microsoft.com/en-us/library/system. type.getgenerictypedefinition.aspx :
这篇关于为什么GetGenericTypeDefinition失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!