Why does GetGenericTypeDefinition fail?

Viewed 6142

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:

[InvalidOperationException: Operation is not valid due to the current state of the object.] System.RuntimeType.GetGenericTypeDefinition() +7525641

Code is this:

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);
        }
    }
}

Any help would be much appreciated.

1 Answers
Related