1

我有一个服务对象,可以对特定患者进行一些工作。

public class PatientDxService
{
    public Patient Patient { get; set; }

    public PatientDxService(Patient patient)
    {
        this.Patient = patient;
    }
}

我的服务接受一个 Patient 对象,如上所示。

我有一个SessionManager对象,它具有获取会话患者的属性。我想给病人注射。

Bind<PatientDxService>().ToConstructor(x => new PatientDxService(x.Inject<ISessionManager>().Patient));

Bind<ISessionManager>().To<SessionManager>().InSingletonScope();

以上对我不起作用。我真的不想注入ISessionManager,因为如果我想使用 Web 范围之外的服务,那就没有意义了。

4

1 回答 1

0

将 ISessionManager 注入您的服务而不是患者。然后在构造函数中(或者更好的是,您实际使用患者的地方),从会话中请求患者。

public class PatientDxService
{
    private readonly ISessionManager _session;

    public PatientDxService(ISessionManager session)
    {
        this._session = session;
    }

    public void DoStuff()
    {
        var patient = _session.GetPatient();
        ...
    }
}
于 2012-12-20T14:23:24.003 回答