我最近得到了一份工作任务,以了解有关此框架的所有内容,但我甚至无法启动它。我阅读了有关这个特定初始化部分的所有博客和文档,但它们都至少有3-4年的历史,并且没有关于它的更新信息。 This是关于Castle ActiveRecord的官方文档。我改变了一点,因为InPlaceConfigurationSource不再有使用HashTable的重载,我认为这是它的问题,因为我得到了这个例外。
public Form1()
{
InitializeComponent();
InPlaceConfigurationSource source = new InPlaceConfigurationSource();
IDictionary<string,string> properties = new Dictionary<string, string>();
properties.Add("hibernate.connection.driver_class", "NHibernate.Driver.SqlClientDriver");
properties.Add("hibernate.dialect", "NHibernate.Dialect.MsSql2008Dialect");
properties.Add("hibernate.connection.provider", "NHibernate.Connection.DriverConnectionProvider");
properties.Add("hibernate.connection.connection_string", "Server=.\\SQLEXPRESS;Initial Catalog=TestDB; Trusted_Connection=true;");
source.Add(typeof(ActiveRecordBase), properties);
ActiveRecordStarter.Initialize(source, typeof(Blog));
}
Castle.ActiveRecord.ActiveRecordStarter&#39;的类型初始化程序。抛出异常。
&#34;无法加载类型&#39; Iesi.Collections.Generic.HashedSet&#39; 1&#39;来自assembly&#39; Iesi.Collections,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = aa95f207798dfdb4&#39;。&#34;:&#34; Iesi.Collections.Generic.HashedSet`1&#34;
答案 0 :(得分:1)
我设法解决了这个问题,我会发布答案以防万一其他人陷入困境。我通过删除所有添加的引用并在另一个项目中查找旧的dll并在解决方案资源管理器中手动引用它来解决它。 NuGet管理器只返回彼此不兼容的较新版本(ActiveRecord,NHibernate,log4net等),或者不再定义所有旧类(即本文中的例外)