.Net中的依赖注入?

Moh*_*yan 1 .net c# dependency-injection

可能重复:
帮助.NET中的依赖注入

嗨朋友们,

我在一些网站上看到了依赖注入的几天!
你能说:

它是什么 ?
使用它有什么好处?

非常感谢.

Jus*_*ner 5

依赖注入是一个非常简单的概念(另一方面,实现可能非常复杂).

依赖注入只是允许方法的调用者在调用方法时将依赖对象注入方法.例如,如果您希望允许以下代码交换SQL提供程序而不重新编译该方法:

public void DoSomething()
{
    using(SQLConnection conn = new SQLConnection())
    {
        // Do some work.
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以'注入'SQL提供者:

public void DoSomething(ISQLProvider provider)
{
    // Do the work with provider
}
Run Code Online (Sandbox Code Playgroud)

还有构造函数注入,您可以在实例化期间注入对象的依赖项.

public class SomeObject
{
    private ISQLProvider _provider;

    public SomeObject(ISQLProvider provider)
    {
        _provider = provider;
    }
}
Run Code Online (Sandbox Code Playgroud)

依赖注入的重点是减少应用程序各部分之间的耦合.调用者可以替换完成任务所需的任何内容,而无需修改它调用的方法(或者它正在创建的对象).