0
我一直在慢慢地教導自己界面驅動編程的基礎知識,並且我正在努力讓我的腦袋圍繞關於Ninject特別是控制反轉的一些原則。基本Ninject需要的信息
可以說我有一個具體的模型類,如下...
public sealed class Host : EntityAuditable<Host, Guid>
我有一個基類,它定義了這樣的模型方法....
public abstract class EntityAuditable<T, TKey> :
IEntity,
IDisposable,
IComparable<EntityAuditable<T, TKey>>
where T : EntityAuditable<T, TKey>, new()
IEntity是一個定義對象屬性「Id」的非常簡單的接口。
現在對於我的主機類的構造函數將如下....
public Host(IService<Host> service)
{
this.service = service;
this.id = Guid.NewGuid();
}
凡IService實現提供方法,堅持對象具體到服務存儲庫。
我想要做的就是提供我的基類中的一些靜態方法,這樣我可以像
Host.LoadAll();
編寫代碼,知道我的綁定將被正確注射。我在基類中的實現將與此類似...
public static IList<T> LoadAll()
{
T instance = new T();
List<T> instances = new List<T>(instance.DataSelectAll());
// Clean up the instance.
instance.Dispose();
return instances;
}
這是可能的還是我在做一些根本性的錯誤?
當我調用新的T()時,Ninject是否知道它應該調用我的參數化構造函數?
我在文檔中發現的例子(這是令人遺憾的過時的)使用內核來創建對象,但我不想在我的模型中散佈內核創建代碼。
我會在我的Global.ascx文件中做所有的綁定。
感謝您的編輯。它使一切都更容易閱讀。 – 2010-09-13 22:41:42