1
我在c#中開發用戶庫時遇到了一個令人困惑的問題,其中我創建了兩個類,實現了API作爲分離插件調用的接口...訪問單身屬性(WPF綁定)
(這意味着,編譯後的API檢測2個插件雖然他們是來自同一個項目)
我想要做的是使這兩個插件之間的通信。準確地說,我想從一個插件轉移一個對象(它不是一個副本),但是我失敗了!
我試圖讓其中一個插件Singleton從另一個插件到達它,但由於API需要一個公共構造函數,我不得不模仿singleton工作,並且實際上我已經到達插件的實例,但我能夠達到它的屬性...
讓我圖式化,通過簡化代碼:
讓我們說這是A類(模仿單身一)
Class A:IPlugin
{
private static volatile A _instance;
public static A Instance
{
get { return _instance; }
}
public A()
{
if (_instance == null) _instance = this; // as i'm sure it's called once
}
public Foo F{get;set} // THIS IS INITIALIZED SOMEWHERE IN THAT PLUGIN'S CONTEXT
}
和這是嘗試額外的班級從A
Class B:IPlugin
{
FindFoo()
{
Foo Fb = A.Instance.F; // THAT IS ALWAYS NULL
}
}
一個非常重要的指示,並可能產生問題的一個CT的對象是:
AF綁定到WPF控件...
希望我清楚地傳達了我的問題,你將能夠幫助我,因爲我卡住了!
謝謝爲你的答案,但我只是沒有訪問的API類和接口...我不能修改接口IPlugin – DjTrilogic
你不必..它的只是在那裏,所以你可以輕鬆地編譯代碼。您只需訪問A類和B類的代碼即可 –