1
我有一個服務對象,對特定患者做一些工作。如何使用ninject注入會話對象屬性?
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範圍之外的服務,這是沒有意義的。
我試圖避免會話依賴性,使服務可以在Web範圍之外重用,而無需更改它。也許我的整個方法是錯誤的。 –
在這種情況下,你可以用一個更抽象的Facade封裝'ISessionManager',比如'IPersonAccessor',它只有'GetPatient()'方法。這種方式使用服務的人可以定義如何訪問患者。 –
一般我試圖堅持注入服務的概念,而不是模型。如果一個類需要一個模型,注入可以提供它的服務。 –