使用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