C#管理UI图形的更好方法

C#管理UI图形的更好方法,c#,graphics,resources,compact-framework,embedded-resource,C#,Graphics,Resources,Compact Framework,Embedded Resource,我正在为一个移动应用程序构建一个UI框架,我有一个关于管理UI图形的问题 现在,我将所有图形存储为嵌入式资源。但该项目的GUI部分被分为3个不同的项目和名称空间,每个项目和名称空间都包含图形作为嵌入式资源。其中一个项目是基类型,不知道其他两个项目,另外两个项目需要来自其命名空间和程序集以及第三个(基)命名空间和程序集的资源 我一直在做的是,当通过文件名请求资源时,我遍历三个项目的Assembly对象的GetManifestResourceName列表,对它们进行排序,然后搜索包含文件名的第一个字

我正在为一个移动应用程序构建一个UI框架,我有一个关于管理UI图形的问题

现在,我将所有图形存储为嵌入式资源。但该项目的GUI部分被分为3个不同的项目和名称空间,每个项目和名称空间都包含图形作为嵌入式资源。其中一个项目是基类型,不知道其他两个项目,另外两个项目需要来自其命名空间和程序集以及第三个(基)命名空间和程序集的资源

我一直在做的是,当通过文件名请求资源时,我遍历三个项目的Assembly对象的GetManifestResourceName列表,对它们进行排序,然后搜索包含文件名的第一个字符串。我注意到,对于每个图形,只需11-14毫秒就可以得到这个字符串!当所有这些都说了又做了,我只在资源名称查找中看到60-100毫秒

我知道必须有更好的方法,只使用文件名跨项目和名称空间动态查找资源。这方面的任何帮助都将非常好


此外,嵌入资源也不是一个约束。如果有一个更好的解决方案不涉及呃,那就太好了

60-100ms作为一次性操作并不坏,因此您可以创建自己的缓存类,在应用程序执行的早期就解决这个问题-它可以使用
字典
对象,因此从那时起,您可以获得非常快的查找时间

如果事先没有该列表,则可以使用“延迟加载”缓存,即在第一次请求时查找该值,然后存储以供将来访问


希望能有所帮助。

谢谢您的回复!那么,您建议如何设置词典?键是图像名称,程序集是值?IDK程序集对象有多大,如果它们很小(只是指向静态对象的指针),那就好了,但如果它们很大,我只有32 mb的空间可以使用,因为它是.netCF…您试图基于文件名获取或缓存对象
Dictionary
就可以了:然后只需查看字典,几微秒就可以得到您的对象:)谢谢您的回复。我要问的是,我是否应该像
Dictionary
那样设置Dictionary,以及Assembly对象是指针还是非常大的对象。这是因为堆的大小非常有限。这就是我不缓存实际图像对象的原因。是的,除非它是
struct
,否则它将只是存储在字典中的引用。我明白你的意思了,如果有那么多图像使用
Assembly
似乎是一种方法。