C# 从Windsor容器解析命名datacontext组件
我有两个集装箱登记:C# 从Windsor容器解析命名datacontext组件,c#,asp.net-mvc,asp.net-mvc-4,castle-windsor,C#,Asp.net Mvc,Asp.net Mvc 4,Castle Windsor,我有两个集装箱登记: container.Register(Component.For<DataContext>().LifestylePerWebRequest()); container.Register(Component.For<DataContext>().LifestyleTransient().Named("transientContext")); container.Register(Component.For().LifestylePerWebRequ
container.Register(Component.For<DataContext>().LifestylePerWebRequest());
container.Register(Component.For<DataContext>().LifestyleTransient().Named("transientContext"));
container.Register(Component.For().LifestylePerWebRequest());
container.Register(Component.For().LifestyleTransient().Named(“transientContext”);
我已尝试像这样解析命名实例(瞬态):
var instance = Container.Instance.Resolve<DataContext>("transientContext");
instance.Table1.Add(new Table1());
instance.SaveChanges();
var instance=Container.instance.Resolve(“transientContext”);
instance.Table1.Add(newtable1());
SaveChanges();
但是在SaveChanges()上引发了一个异常“操作无效。连接已关闭。”
有什么问题吗
谢谢 我怀疑温莎混淆了它的两种解决方法:
Container.Instance.Resolve<T>(object argumentAsAnonymousType) //the one its calling
Container.Instance.Resolve<T>(string key) //the one it should be calling
Container.Instance.Resolve(object argumentAsAnonymousType)//调用它的那个
Container.Instance.Resolve(字符串键)//它应该调用的
然后,Windsor将您的键“transientContext”作为DataContext的参数。DataContext的参数是一个连接字符串ref,它导致实体框架抛出给定的异常。要解决此问题,您可能可以使用命名参数:
var instance = Container.Instance.Resolve<DataContext>(key: "transientContext");
var instance=Container.instance.Resolve(键:“transientContext”);