2010-10-19 14 views
9

Tengo un código que necesita verificar una entidad cuando es guardado por mi Repositorio. Tengo un interceptor NHibernate en el ahorrar para comprobar esto, pero cuando llamo a la función GetGenericTypeDefinition el código falla con el error:¿Por qué GetGenericTypeDefinition falla?

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

Código es la siguiente:

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

sería muy apreciada Cualquier ayuda.

+1

Podría ver si evt.Entity.GetType() en sí ya no? Sería útil saber exactamente qué función falla la llamada en este ejemplo. La excepción no parece una excepción devuelta por GetGenericTypeDefinition(). –

+0

No deja de obtener evt.Entity.GetType() – Richard

Respuesta

Cuestiones relacionadas