最近在设计实现分离式的小程序,将主要dll库分离出来,使用反射机制进行调用。
但是在支持多语言化的时候遇到了一个问题:
dll文件所处的文件夹 与 放置多语言的资源文件的文件夹 处在同一级目录下。
也就是说,dll的多语言化需要到与自己同级的另一个文件夹去查找文件。
但不幸的是,我查了很久的资料,尝试了普通文件路径的“..”,都无法定位到另一个文件夹。
当然,解决方案至少有俩:
- 使用普通文件的绝对路径去构建Uri
- 把放置多语言文件的文件夹变成dll文件夹的子文件夹
但是,这都不是最优解,毕竟Xaml文件中也会用到Uri,而且,WPF这Uri写法如果真的这么不堪的话,为什么还会开发出来呢?
所以还是需要尝试,那么开始推理:
我对多语言化的要求是:不需要程序重新编译,只需要往指定目录下放置语言文件,即可导入。所以,这些语言文件肯定不是从一开始就定义在项目中的,也就是说,Uri的开头必定是:
pack:/