使用Autofac,我们如何从依赖类中访问激活器类?我们如何从一个依赖类中访问喷油器对象?
例如,我们有两个类A
和B
其中A
类注入B
。所以我想从B
的构造函数访问的A
对象的引用:
public class A
{
private readonly B _b;
public A(B b)
{
_b = b;
}
}
public class B
{
public B(...)
{
// in here i want to access to the reference of
// the object which injects this class,
// (which in this example is the 'A')
}
}
感谢。
这是一个糟糕的设计,这是臭名昭着的“循环依赖”。你应该考虑重新设计你的代码,以便它不需要'A'实例。 –
B不需要A的新实例,它只需要注入B的A的当前实例。实际上B将知道哪个类正在注入它来为它做一些特殊的工作。 –
@AliAdl - 这正是“坏设计”的意思。 'B'不应该(需要)知道哪个'A'使用它。 - 另一方面,也许你错了。如果'B'需要知道'A',但'A'不需要知道'B',那么'B'的实例应该在其构造函数中获得'A'的实例。如果确实'A'需要'B' *和*'B'需要'A',那么您很可能会遇到设计问题。如果你详细阐述你想要完成的事情,我们可能会提出一种不同的方法。 – Corak