C# Castle Windsor IoC将属性注入构造函数
我有一个会话管理器类,它具有会话属性。我需要将其作为构造函数参数传递到另一个类中。我应该如何配置castle windsor的安装程序 e、 gC# Castle Windsor IoC将属性注入构造函数,c#,dependency-injection,inversion-of-control,castle-windsor,C#,Dependency Injection,Inversion Of Control,Castle Windsor,我有一个会话管理器类,它具有会话属性。我需要将其作为构造函数参数传递到另一个类中。我应该如何配置castle windsor的安装程序 e、 g 公共接口ISessionManager { ISession CurrentSession{get;set;} } 公共类会话管理器:ISessionManager { 非公开会议; 公听会 { 获取{return\u session??(\u session=NHibernateHelper.OpenSession());} 设置{u session
公共接口ISessionManager
{
ISession CurrentSession{get;set;}
}
公共类会话管理器:ISessionManager
{
非公开会议;
公听会
{
获取{return\u session??(\u session=NHibernateHelper.OpenSession());}
设置{u session=value;}
}
}
公共接口IRequest
{
TR Execute(IExecuteManager executeManager);
}
公共类请求:IRequest
{
专用只读会话;
公开请求(ISession会话)
{
_会话=会话;
}
公共TR执行(IExecuteManager executeManager)
{
返回executeManager.Request(\u会话);
}
}
我一直在温莎城堡的文档中搜寻,但我一定是在寻找错误的东西或是遗漏了什么,因为我肯定它就在那里,就是找不到
我应该如何配置castle windsor安装程序,以便将SessionManager.CurrentSession注入到请求类的构造函数中?(参考修正温莎文档或示例也很好)容器.寄存器(组件.For())
.使用FactoryMethod(()=>容器
.Resolve().CurrentSession)
(生活方式,短暂),;
我把iSeries换成了ISession,一切都很好。谢谢就我引用的文档而言,我完全走错了方向,但现在我明白了。
public interface ISessionManager
{
ISession CurrentSession { get; set; }
}
public class SessionManager : ISessionManager
{
private ISession _session;
public ISession CurrentSession
{
get { return _session ?? (_session = NHibernateHelper.OpenSession()); }
set { _session = value; }
}
}
public interface IRequest
{
TR Execute<TR>(IExecuteManager<TR> executeManager);
}
public class Request: IRequest
{
private readonly ISession _session;
public Request(ISession session)
{
_session = session;
}
public TR Execute<TR>(IExecuteManager<TR> executeManager)
{
return executeManager.Request(_session);
}
}