我試圖得到一個MSTest的單元測試運行,我有我的NHibernate的配置部分下面的行App.config
:異常使用`NHibernate.Bytecode.DefaultProxyFactoryFactory`
<property name="proxyfactory.factory_class">NHibernate.ByteCode.DefaultProxyFactoryFactory, NHibernate</property>
每當我試着運行單元測試,我在測試圖片的ClassInitialize
方法中遇到異常。唯一的例外是:
NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:無法 代理工廠類的配置期間加載類型 'NHibernate.ByteCode.DefaultProxyFactoryFactory, NHibernate.Bytecode'。
和我的初始化代碼:
private static ISessionFactory _sessionFactory;
private static Configuration _configuration;
[ClassInitialize()]
public static void ProductRepositoryInitialize(TestContext testContext)
{
_configuration = new Configuration();
_configuration.Configure();
_configuration.AddAssembly(typeof(Product).Assembly);
_sessionFactory = _configuration.BuildSessionFactory();
}
然而DefaultProxyFactoryFactory
是可用的,因爲我可以在一個控制檯應用程序使用行實例化:
NHibernate.Bytecode.DefaultProxyFactoryFactory factory = new DefaultProxyFactoryFactory();
那麼,爲什麼NHibernate的失敗在我的單元測試類中實例化,甚至找到這種類型。它可能是測試類初始化器是靜態的嗎?
最新新聞: 如果我使用相同的代理工廠,但用流利的配置,我得到幸福和快樂,並插入到我的數據存儲行。
_factory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2012)
.Mappings(m => m.HbmMappings.AddFromAssemblyOf<Product>())
.ProxyFactoryFactory<DefaultProxyFactoryFactory>()
.BuildSessionFactory();
你確定你的.config文件中有',NHibernate'嗎?你得到的例外情況是另有建議。 –
@AntonGogolev是的,我的配置中的那一行與上面顯示的代碼片段完全相同。如果你向右滾動它。 – ProfK