我们有一个控制台应用程序,它引用第三方自定义dll。为了创建第三方dll的对象,我们使用了Unity.config
现在,第三方类别是依赖的。
class A : IA
{
}
class B : IB
{
B(IA obja) {}
}
在上述情况下使用Unity依赖关系,我们如何解决依赖关系??
答案 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
。通过注册IBar
和IFoo
,您将提供足够的信息来团结一致,以便能够为您解决依赖关系...
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