-1

我在容器中有两个注册:

container.Register(Component.For<DataContext>().LifestylePerWebRequest());
container.Register(Component.For<DataContext>().LifestyleTransient().Named("transientContext"));

我试图像这样解决命名实例(瞬态):

  var instance = Container.Instance.Resolve<DataContext>("transientContext");
  instance.Table1.Add(new Table1());
  instance.SaveChanges();

但在 SaveChanges() 处抛出异常“无效操作。连接已关闭”。

可能是什么问题呢?

谢谢!

4

1 回答 1

0

我怀疑 Windsor 混合了它的两种解决方法:

Container.Instance.Resolve<T>(object argumentAsAnonymousType) //the one its calling
Container.Instance.Resolve<T>(string key) //the one it should be calling

Windsor 然后将您的键“transientContext”视为 DataContext 的参数。DataContext 的参数是一个连接字符串 ref,它会导致实体框架抛出给定的异常。要解决,您可能可以使用命名参数:

var instance = Container.Instance.Resolve<DataContext>(key: "transientContext");
于 2013-10-21T22:50:27.863 回答