J'ai une hiérarchie d'objets Parent-> Enfant (Chargement par défaut est défini sur true par défaut) Maintenant, je charge tous les objets parents de la base de données. Tout l'objet enfant aura le type ChildProxyGUID.Après avoir appelé NHibernate.Initialize (proxyObject) je me trompe objectType
alors j'écrire le
IList<Parent> parentList = NHibernateHelper.List<Parent>();
foreach(Parent parent in parentList)
{
if(!NHibernateUtil.IsInitialized(parent.Child))
{
NHibernateUtil.Initialize(parent.Child);
if(parent.Child.GetType() != typeof(Child)) //parent.Child.GetType() return me proxy type
throw new ArgumentException("wrong type");
}
}
Comment puis-je convertir parent.Child type réel "enfant". J'ai besoin du vrai type (Enfant) à cause de la vérification du système. Cet exemple est simple dans la vie réelle J'ai des mappings et des relations très compliquées.
Des idées là-bas?
Tout à fait d'accord avec vous sur LSP. J'ai donc fait quelques changements dans le noyau, et maintenant cela fonctionne avec les classes Proxy. Merci – Step