【问题标题】:Default implementation of Interface接口的默认实现
【发布时间】:2014-10-01 19:07:11
【问题描述】:

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

HomeController(IClientData clientdata, IClientRecord clientrecord)
{ }

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

【问题讨论】:

  • 你确定你没有某种依赖注入吗?
  • @nsgocev 我打算发布同样的问题:P
  • @nsgocev 我没有看到任何依赖注入,但请告诉我如何确保?
  • 另外,如果确实有 dep.注入,我如何仍然使用默认实现?
  • @Maxsteel 参考这个话题-stackoverflow.com/questions/2216643/…

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


【解决方案1】:

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

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

  1. 团结
  2. Autofac
  3. 温莎城堡
  4. 结构图 等等……

它们通常提供两种设置依赖项的方法 -

  1. 通过 XML 配置文件
  2. Fluent 界面(内部代码)

使用Fluent接口时,一般做法是在App_Start文件夹内创建一个单独的类文件,并从global.asax(Application_Start)中调用。

【讨论】:

    猜你喜欢
    • 2015-07-31
    • 2014-12-06
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多