我知道有几个关于卫星大会的问题,但是在尝试实施它们时我仍然遇到了一些麻烦
我的目标是在一个程序集中分离每种文化,让我可以灵活地在需要时一次只重新编译一个程序集,如果我只想对一种语言进行一些小的更改,我不想编译所有语言语
我想充分了解卫星大会的工作方式。这是我目前的理解:
卫星程序集可以放在 bin 目录中,而无需重新编译整个应用程序,这意味着应用程序不需要这些程序集即可正常工作(只要指定了备用资源)
SA 必须与单一文化相关联
现在我可以使用该工具生成 SA al
,如果我添加 .resx 文件,Visual Studio 可以为我生成 SA,SA 已创建(在 bin 文件夹中,我可以看到指定区域性的文件夹结构)
问题1.这些dll是不是等价的,一个是Visual Studio生成的,一个是al
工具生成的?
问题 2.所有这些 dll 是否必须共享一个通用名称才能工作?(我知道他们应该保持一致性,但如果他们不共享名称,让我们说使用al
指定不同名称的工具创建它们)它们仍然可以被要加载的.Net框架识别吗?
问题 3.如果我想使用ResourceManager
该类,是否必须为每个装配文化实例化一个实例?(并且由于它们的名称中包含区域性,因此它们具有不同的程序集名称,我是否必须手动格式化嵌入的资源文件以加载以匹配当前区域性并手动加载该程序集?因为它们可能不会在第一次加载,我是否必须通过指定文化文件夹中的文件路径来手动加载它?)
问题 4.这些 SA 是由 .Net 框架自动加载的,还是我必须显式加载它们?
问题 5。如果我必须加载它们,这意味着如果我想在我的控制标签中以声明方式指定资源,我是否必须创建并注册一个自定义资源工厂才能加载它们?
问题 6.如果我在 Visual Studio 的一个类项目中添加多个文化的多个资源而没有代码,它们会自动嵌入,当我编译时,会创建每个文化的附属程序集,这些 dll 是否相关?我想知道它们是否按名称、名称空间或其他东西相关
所有这些问题都基于此:我认为我可以将程序集添加到 bin 文件夹并在ResourceManager
. (这就是为什么我关心程序集名称或几个附属程序集是如何相关的)就像在单个程序集中定义资源时一样,您只需Resources.MyResourceKey
调用
我很感激你的帮助,这个话题让我发疯了=(