依赖对象-使用统一C#进行依赖注入

时间:2019-02-26 18:32:31

标签: c# dependency-injection unity-container

我们有一个控制台应用程序,它引用第三方自定义dll。为了创建第三方dll的对象,我们使用了Unity.config

现在,第三方类别是依赖的。

class A : IA
{ 
}

class B : IB
{
    B(IA obja) {}
}

在上述情况下使用Unity依赖关系,我们如何解决依赖关系??

1 个答案:

答案 0 :(得分:0)

  

在上述情况下使用Unity依赖性,我们如何解决依赖性?

您唯一需要做的就是正确设置unity并具有所有必需的依赖项。在解决期间,unity将为您处理依赖项并注入设置实现...

public interface IFoo
{
    string Foo();
}

public interface IBar
{
    void Bar();
}


public class Foo : IFoo
{
    string IFoo.Foo()
    {
        return "Foo";
    }
}

public class Bar : IBar
{
    private readonly IFoo _foo;

    public Bar(IFoo foo)
    {
        _foo = foo;
    }

    void IBar.Bar()
    {
        Console.WriteLine($"Bar {_foo.Foo()}");
    }
}

想象一下这种情况Bar取决于IFoo。通过注册IBarIFoo,您将提供足够的信息来团结一致,以便能够为您解决依赖关系...

UnityContainer container = new UnityContainer();

container.RegisterType<IFoo, Foo>();
container.RegisterType<IBar, Bar>();

var bar = container.Resolve<IBar>(); // Foo will be automatically injected
bar.Bar();
// Bar Foo