我有以下非标准设置(VS2008,.NET 3.5 SP1):
有一个名为MainSite的主要Web项目,有几个名称不同的“插件”Web项目。
构建这些插件时,我有一个调用aspnet_compiler.exe
和aspnet_merge.exe
的自定义构建步骤。这会生成两个.DLL文件 - plugin_name .dll和 plugin_name _deploy.dll。第一个包含代码隐藏类,第二个包含从.ascx文件生成的代码。
然后将这些插件.DLL复制到/MainSite/bin/Plugins/
文件夹。在运行时(应用程序启动),MainSite应用程序在此文件夹中查找并动态加载所有.DLL文件。
我的所有表单都在.ascx文件的插件中。主要应用程序只是一个骨架,可根据需要加载这些.ascx用户控件。
现在需要进行本地化。理想情况下,我希望得到以下内容:
meta:resourcekey
方法非常适合本地化控件; /MainSite/bin/Plugins/
文件夹中。如果每个语言/文化都有一个.DLL文件,并且它们可以放在一些特定的子文件夹中 - 只要不同插件中的.DLL没有碰撞名称就可以了。关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
显然可以在.NET中实现自定义资源提供程序。 Here是一篇文章,其中包含解释整个过程的各种其他文章的链接。实际上,您从meta:resourcekey
获取值并从您想要的任何位置获取值。例如,上面的文章将所有本地化信息存储在数据库中。