应用程序设计,全球图像采集
本文关键字:图像 程序设计 应用 | 更新日期: 2023-09-27 18:23:48
我们有一个类似n层结构的应用程序,但我不会说它是n层的。最上面的Form/AKAMainForm/连接到一个DB,并获得可用模块的列表,根据该列表开始加载不同的模块。每个模块都是一个单独的项目,有一个从抽象类派生的顶级类,所有模块都从抽象类中派生。
所以,到目前为止,我们的一切都运行得很好,传递连接字符串,模块和主应用程序之间的对话框。
下一步是实现每个模块都要使用的全局图标库,问题是每个模块都应该能够加载自己的图像
我想到的是一个全局静态类,它返回ImageList类的当前运行实例。我不知道从哪里开始,所以有人能提供一个全局类的例子吗?它可以静态使用,而不需要声明或传递它?有可能吗?
编辑:
改写尝试:理想情况下是一个全局资源,每个单独的模块都可以向其中插入资源,每个模块都可以从中获取图像(如果存在的话)。我甚至不知道从哪里开始,也不知道该找什么。
编辑2:
刚刚检查:
有3个项目:1个主项目,1个子项目,1个中项目
之间的主要引用
之间的子引用
1 main在"inbetween"上启动并调用静态方法,将一些字符串加载到其中。使用Reflection"main"实例加载child.dll并使用反射实例化对象,然后在子对象的"inbetween"中调用接口中定义的方法,该方法反过来调用"inbetwhen"上的静态方法,之后"main"将打印静态"inbetwyn"中的所有字符串。它起作用了!我就像WTF?我想反射结合了两个"中间"
public static class Foo
{
public static int Bar()
{
return 1;
}
public static void AddImage(Image img, String key){...}
public static Image GetImage(String key){...}
}
那么,你的意思是你需要一个"module static"(行为类似于线程static,但针对模块)方法吗?
一个简单的方法是有一个共享库,每个模块都有一个引用。这样每个模块都会知道共享库提供的类的存在。然后你可以在共享库中有一个类来管理你的图像。
为了使它更优雅,我会研究像Unity这样的依赖注入框架。让共享库(基础结构库)保存用于管理映像的接口的定义。然后有一个实现该特定接口的模块,然后在统一容器中注册该实现器。因此,每个模块都将通过统一容器来解析接口。
这样,每个模块就不会与实现接口的模块紧密耦合,而只与仅包含接口定义的共享库紧密耦合。