1

特定の患者に対して何らかの作業を行うサービス オブジェクトがあります。

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

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

上記のように、私のサービスは患者オブジェクトを受け取ります。

SessionManagerセッションの患者を取得するプロパティを持つオブジェクトがあります。患者に注射したい。

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

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

上記は私にはうまくいきません。ISessionManagerWeb スコープ外でサービスを使用したい場合、それは意味がないため、実際には挿入したくありません。

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 に答える