我在 C# 中开发用户库时遇到了一个令人困惑的问题,我在其中创建了两个类,它们实现了一个由 API 作为单独插件调用的接口......
(这意味着在编译后 API 会检测到 2 个插件,尽管它们来自同一个项目)
我想要做的是启用这两个插件之间的通信。准确地说,我想将一个对象(它是引用而不是副本)从一个插件转移到另一个......但我失败了!
我试图制作其中一个插件单例并从另一个插件中访问它,但是由于 API 需要一个公共构造函数,我被迫模仿单例工作,并且实际上我已经到达了插件的实例,但是我能够达到其属性...
让我通过简化的代码来概括一下:
假设这是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
}
}
一个非常重要的迹象和可能造成问题的迹象是:
AF 绑定到 WPF 控件...
我希望我已经清楚地传达了我的问题,并且您将能够帮助我,因为我被卡住了!