Зависимые объекты - внедрение зависимостей с использованием единства C # - PullRequest
0 голосов
/ 26 февраля 2019

У нас есть консольное приложение, которое относится к сторонним пользовательским библиотекам.Чтобы создать объект сторонних библиотек, мы использовали Unity Dependency Injection с использованием Unity.config

Теперь сторонние классы являются зависимыми.

class A : IA
{ 
}

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

Использование Unity-зависимости для описанного выше сценарияКак мы можем разрешить зависимость ??

1 Ответ

0 голосов
/ 27 февраля 2019

Как использовать зависимость 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.Регистрируя как IBar, так и IFoo, вы будете предоставлять достаточно информации в Unity, чтобы иметь возможность разрешать зависимости для вас ...

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
...