Как использовать зависимость 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