最近、Windows フォーム C# プロジェクトを NHibernate 2.0 から 2.1 にアップグレードしました。app.config を更新して、選択したプロキシ (この場合は「NHibernate.ByteCode.Castle」) を指す「proxyfactory.factory_class」を含めます。アップグレード後、プログラムは期待どおりにビルドおよび実行され、問題は発生しません。私たちの問題は、Visual Studio 2008 デザイナー内でロード時に NHibernate への参照を含むフォームを開こうとすると、次のエラーが表示されることです (プロキシを構成していないかのように)。
ProxyFactoryFactory が構成されていません。使用可能な NHibernate.ByteCode プロバイダーの 1 つを使用して、session-factory 構成セクションの「proxyfactory.factory_class」プロパティーを初期化します。
スタックトレース:
at NHibernate.Bytecode.AbstractBytecodeProvider.get_ProxyFactoryFactory()
at NHibernate.Cfg.Configuration.Validate()
at NHibernate.Cfg.Configuration.BuildSessionFactory()
at DAL.NHibernateHelper..cctor() in ...\DAL\NHibernateHelper.cs:line 62
NHibernateHelper の 62 行目:
static NHibernateHelper()
{
var cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly("DAL");
sessionFactory = cfg.BuildSessionFactory(); // <-- line 62
}
NHibernate の app.config 構成は次のとおりです。
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string">Server=ourserver;initial catalog=ourdb;Integrated Security=SSPI</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
</configuration>
この問題を解決する方法について手がかりを持っている人はいますか? ありがとう!