J'ai un morceau de code qui doit vérifier une entité lors de sa sauvegarde par mon Repository. J'ai un intercepteur NHibernate sur la sauvegarde pour vérifier cela, mais quand je l'appelle la fonction GetGenericTypeDefinition
le code échoue avec l'erreur:Pourquoi GetGenericTypeDefinition échoue?
code[InvalidOperationException: Operation is not valid due to the current state of the object.] System.RuntimeType.GetGenericTypeDefinition() +7525641
est le suivant:
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);
}
}
}
Toute aide serait grandement appréciée.
Pourriez-vous voir si evt.Entity.GetType() lui-même a déjà échoué? Il serait utile de savoir exactement quel appel de fonction échoue dans cet exemple. L'exception ne ressemble pas à une exception renvoyée par GetGenericTypeDefinition(). –
Il ne manque pas d'obtenir evt.Entity.GetType() – Richard