2009-10-14 5 views
1

Je réalise que NHibernate 2.1 removed its dependency on the Castle Project. En fait, Joshua Ewer a fait un excellent post résumant l'implémentation necessity of a proxy factory for an NHibernate.Comment les exemples dans ASP.NET MVC in Action évitent de spécifier la classe proxyfactory.factory lors de l'utilisation de NHibernate 2.1

Actuellement, je travaille à travers les exemples dans ASP.NET MVC in Action par Jeffrey Palermo et suis confus. Les exemples de code source pour le projet NHibernate du chapitre 13 et le projet Code Camp Server utilisent NHibernate 2.1.0.1001. Aucun projet ne spécifie proxyfactory.factory_class dans son hibernate.cfg.xml. J'utilise NHibernate 2.1.0.4000 et je reçois le fameux message d'erreur "La ProxyFactoryFactory n'a pas été configurée".

J'avais l'impression que le proxyfactory.factory_class devait être spécifié dans toutes les révisions de NHibernate 2.1. Ai-je manqué quelque chose dans les exemples fournis qui spécifie proxyfactory.factory_class en dehors du hibernate.cfg.xml?

+0

Peut-être que le projet Tarantinho utilise CodeCampServer? –

+0

Voir Je pensais aussi, mais j'ai ensuite examiné le projet NHibernate plus vanille du chapitre 13 et il n'utilise pas le projet Tarantinho. – ahsteele

Répondre

1

J'ai passé beaucoup trop de temps à creuser, mais c'était surtout agréable.

Je trouve le code source pour le livre ASP.NET MVC en action ici:

http://www.manning.com/palermo/aspnetmvcinaction.zip

Le NHibernate.dll disponible dans le code source est en date du 26 Décembre 2008 et le numéro de version est indiquée comme "2.1.0.1001".

NHibernate 2.1 a été officiellement lancé le 19 Juillet 2009:

http://nhforge.org/blogs/nhibernate/archive/2009/07/19/welcome-nh2-1-0.aspx

Ainsi, le 26 Décembre, la version 2008 est évidemment pas la version 2.1 finale, mais certains avant "2.1 finale" libération.

La plupart des changements concernant la suppression de la dépendance dure sur Castle ProxyFactory ont été effectués le 11 octobre 2008 (en particulier les révisions entre environ 3840 et 3850). Voir aussi:

http://nhforge.org/blogs/nhibernate/archive/2008/10/11/nh2-1-0-reference-to-castle-removed.aspx

Utiliser réflecteur sur la 2.1.0.1001 DLL montre une classe ici:

NHibernate.Bytecode.DefaultProxyFactoryFactory

Cette classe a été supprimée par la version 3844 dans la source, donc par conséquent cette version de la DLL NHibernate est (au moins partiellement) de avant que la suppression des changements de dépendance dure pour Castle ProxyFactory ait été complètement implémentée.

Il semble que le numéro de version 2.1.0.1001 a été placé sur la DLL dans la révision 3850, ce qui me porte à croire que cette DLL peut avoir été légèrement piratée avec du code source avant 3844 et du code source après 3844.

Dans tous les cas, cette DLL semble définitivement contenir la dépendance dure (et automatique) sur Castle ProxyFactory, ce qui explique pourquoi vous n'avez pas besoin de l'entrée de configuration proxyfactory.factory_class.

+0

Je ne peux pas vous remercier assez pour casser cela pour moi. J'espère sincèrement que cela aidera aussi quelqu'un d'autre. C'est une réponse comme celle-ci qui me fait me demander ce que nous avons tous fait avant Stack Overflow. – ahsteele

Questions connexes