Interface 请提供基本信息

Interface 请提供基本信息,interface,inversion-of-control,ninject,Interface,Inversion Of Control,Ninject,我一直在慢慢地自学接口驱动编程的基础知识,我正在努力学习一些关于Ninject控制反转的原则 假设我有一个具体的模型类,如下所示 public sealed class Host : EntityAuditable<Host, Guid> 并且知道我的绑定将被正确注入。我在基类中的实现与此类似 public static IList<T> LoadAll() { T instance = new T(); List<

我一直在慢慢地自学接口驱动编程的基础知识,我正在努力学习一些关于Ninject控制反转的原则

假设我有一个具体的模型类,如下所示

 public sealed class Host : EntityAuditable<Host, Guid>
并且知道我的绑定将被正确注入。我在基类中的实现与此类似

   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;
    }
公共静态IList LoadAll()
{
T实例=新的T();
列表实例=新列表(instance.DataSelectAll());
//清理实例。
Dispose();
返回实例;
}
这是可能的还是我做错了什么

当我调用新的T()时,Ninject是否知道它应该调用我的参数化构造函数

我在文档中找到的示例(可惜已经过时)使用内核来创建对象,但我不想让内核创建代码散落在我的模型中


我将在我的Global.ascx文件中进行所有绑定。

在回答我自己的问题时,我发现我的方法不正确


剥离静态方法并将我的mvc控制器用于业务逻辑将导致更好的分离和更干净、更可维护的代码。使用ninject绑定所有内容要容易得多。

感谢您的编辑。它使一切都更容易阅读。
public Host(IService<Host> service)
{
    this.service = service;
    this.id = Guid.NewGuid();
}
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;
    }