我为我的一个程序创建了自己的插件体系结构。c# - 为内部作用域代码实现插件实例属性
Basicly Plugin是我所有插件的基类,并说我有插件PluginA:Plugin,PluginB:Plugin。
public class Plugin
{
private static Plugin _instance;
public static Plugin Instance { get { return Plugin._instance; } }
}
现在和往常一样,我的每个插件都有其他类似的东西,比如窗体和其他类。从那个类我想访问当前的插件实例像;
Plugin.Instance.Settings()
如果我确实在插件ctor中分配_instance字段;
public Plugin(GlobalSettings gs, PluginSettings ps)
{
Plugin._instance=this;
}
然后每个装载的插件的实例被覆盖,我得到奇怪的结果一样PluginB.Instance返回PluginA的一个实例。
我知道单身人士似乎不是正确的方式来做到这一点,但我不能与其他解决方案。也许一个多例可以解决这个问题,但我不希望我的插件作家去
Plugin.Instance["PluginB"]
这似乎无关紧要的所有时间。
感谢您的任何帮助。
是的,这是一个解决方案,但与该方法的问题是 - 让我解释一下;我有一个名为LibEvents的插件,它从XML源读取一些事件,它包含大量条目。我认为所有插件实例都是通过插件实现的,这些插件实际上是废话并且来自一个插件 - 开发人员的观点可能会让事情变得复杂。 – HuseyinUslu 2010-11-12 15:46:56