使用NHibernateFacility for Castle Windsor时,系统会提示我输入一个名为EnumerableExtensions.cs的文件。我通过以下步骤复制了这个(所有包都是从NuGet安装的):
覆盖App.xaml.cs中的OnStartup()以创建Windsor容器并向其添加设施。请参阅下面的代码。
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
IWindsorContainer container = new WindsorContainer();
container.AddFacility<AutoTxFacility>();
container.Register(
Component.For<INHibernateInstaller>()
.ImplementedBy<FluentNHibernateInstaller>());
container.AddFacility<NHibernateFacility>();
}
这是FluentNHibernateInstaller.cs中的代码
public class FluentNHibernateInstaller : INHibernateInstaller
{
public FluentConfiguration BuildFluent()
{
return Fluently.Configure();
}
private IPersistenceConfigurer SetupDatabase()
{
return MsSqlConfiguration.MsSql2008
.ConnectionString(c => c
.Server("Server")
.Database("Database")
.Username("User")
.Password("Password"));
}
public Maybe<NHibernate.IInterceptor> Interceptor
{
get { return Maybe.None<NHibernate.IInterceptor>(); }
}
public bool IsDefault
{
get { return true; }
}
public void Registered(ISessionFactory factory)
{
}
public string SessionFactoryKey
{
get { return "sf.default"; }
}
}
当我运行应用程序时,这是我提供的对话框:
对我来说,这看起来似乎是DLL的错误,但是当我在Castle Project Google Group it was suggested that I had incompatible versions of Windsor in my app上发布此内容时。这是真的还是看起来像是在发生其他事情?
答案 0 :(得分:0)
该对话框是Visual Studio,要求提供发生异常的文件的源代码。单击取消,Visual Studio将在您自己的代码中的某处停止并显示异常。
您可以通过删除发生异常的组件的pdb文件来阻止该对话框(但如果您想在受影响的组件中报告错误,这也会导致不太有用的堆栈跟踪)。