Interface的默认实现

时间:2014-08-08 10:17:05

标签: c# asp.net .net asp.net-mvc asp.net-mvc-3

我有一个使用多个第三方dll的c#.net项目。这些dll公开了整个项目中使用的接口。我的问题是:这些接口传递给Controller类的构造函数,如下所示:

HomeController(IClientData clientdata, IClientRecord clientrecord)
{ }

此处clientdataclientrecord初始化为启动视图所需的默认值(生成客户端详细信息列表)。我将在我的项目中的其他地方使用这些初始化数据,但我不知道如何获得这些默认的初始化值。

1 个答案:

答案 0 :(得分:0)

您所看到的是ASP.NET MVC中非常通用的模式。这里你的家庭控制器有2个依赖项(一个类继承自IClientData,另一个继承自IClientRecord)。这些依赖关系通常由一些DI框架注入。

ASP.NET MVC有一些很好的DI框架

  1. 统一
  2. Autofac
  3. Castle Windsor
  4. StructureMap 等...
  5. 它们通常提供两种设置依赖关系的方法 -

    1. 通过XML配置文件
    2. 流畅的界面(内部代码)
    3. 使用Fluent界面时,通常的做法是在App_Start文件夹中创建一个单独的类文件,并从global.asax(Application_Start)调用它。