我们有一些自动生成的资源文件我们在Visual Studio 2008项目,具有一定的本地化版本,以及在这些本地化版本之一,还有一个字符串,在这种情况下是空的。

更加明确。我们有一个核心的资源文件,有很多字符串资源。然后,我们有thisfile的4个其他本地化版本,并且在这些其他本地化文件中的一个,其中一个字符串被赋予一个空值。

现在的问题是,表单设计是关于有发现一个字符串的资源很高兴,并不惜一切代价显然将停止再利用这一资源的任何空字符串,将分配在生成的设计代码属性的表单

例如,如果由于某种原因不能用默认值指定的控制属性的(所以它会被序列化,即使它是空的代码),那么它会参考我们的资源,而不是写出来的空字符串文字在C#代码。

问题是,它引用的本地化版本,而这些不会被编译代码。

下面是一个简短的代码示例:

this.rpAllFields.KeyTip = 
  global::namespaces.SystemMessagesResources_sv_SE.
    dash_red_shift_info_description;

在这种情况下,dash_red_shift_info_description没有为SV-SE区域设置的值,因此设计,当它看到在代码中一个空字符串,将尝试链接到该资源。但SystemMessagesResources_sv_SE不是现有类,但似乎对于SystemMessagesResources资源文件的瑞典本地化版本,其中的生成的类名是的编译成一个类。

这是可能的,以避免?我们得到相当厌倦了搜索/替换每次我们改变表单文件的东西,而我们可以肯定有一个耳光,我的额头,愚蠢的事情,我们已经做了,使这种情况发生,但我们aparently不能够发现该自己的原因。

在上面的代码中,如果我们去掉了资源,读这样的:

this.rpAllFields.KeyTip = "";
有帮助吗?

解决方案

您可以尝试创建一个字符串资源empty_string,定义为“”每一个语言环境。如果你把它的第一资源,窗体设计器(希望)总是挑一个通过你的表格洒值。这样,至少你会使用指定用于该目的的字符串。

其他提示

如果该问题是由在资源文件中的一个空字符串引起的,会影响是使其成为一个空间的东西。因此,而不是“”的资源文件包含“”。我不知道这是最好的解决办法,但如果它使用该资源作为默认空字符串停止设计师,我很想知道。然而,不知道如何使用它,我不知道有什么应该是未定义被定义为一个空间价值的影响......

多少你需要的资源,它的值是一个空字符串?我可以想像一些多语言场景中的一些关键资源应与空白一些支持的语言(如果你使用字符串连接的一些UI元素),是的。

但如果我的情况是不是这样的事情,我只想取消与空字符串资源条目。我只是说,“UI文本翻译什么独立的空白,反正?”

如果我真的需要的资源是在空白的一些的情况下,(它代表一种语言的文章,其中另一个不存在等价词),我会尝试看看,如果我能产生相同的效果一些其它方式。

生成的资源文件和代码示例将是很好的。

和你说的是:你在你的命名空间中有一个空字符串字面定义(第一个发现),但会引起一些问题呢?会不会是在任何时候是空的?当您编译代码 - 它古怪的事情就是这样,以节省空间。生成的即时装配文件自动生成代码隐藏与XAML文件时,我遇到了一个类似的问题:编译器是足够聪明,知道“它不会有所作为,但对于我们来说,没有因为它会重命名文字(这在别处使用)。

要解决此我们使用命名类型,这些原语在我们的命名空间和做出一个全球性的。我在这里看到的是,你的全局命名空间中blanks-是填补你可能需要有一个“下面”的评估所有空字符串。

我还没有这个曾在一年多所以请原谅我,如果我的措辞是穷,但我的意思是:想XML。需要明确地使用名称空间中的属性或它们分配下(如在XAML附加属性)。

我希望这有助于(和有意义)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top