Pet*_*r B 5 .net resx winforms
在许多.resx文件中,我遇到过这样的事情:
<data name=">>OurLabel.Name" xml:space="preserve">
<value>OurLabel</value>
</data>
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么属性name在很多情况下 - 但并非总是 - 从一开始>>?
您在.resx文件中找到了Winforms表单,其Localizable属性设置为True. >是>字符的xml编码,因此要保存的属性值名称是">> OurLabel.Name".
您将看到的其他属性是Type,Parent,ZOrder.
它们的特殊之处在于它们是设计时属性.设计师为控件添加的额外功能.设计师添加这些属性的问题在于它们可能导致歧义.我能想到的最好的例子是故意造成这种模棱两可:
using System;
using System.ComponentModel;
using System.Windows.Forms;
class MyLabel : Label {
[Localizable(true)]
public string Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将此一个放在窗体上,现在控件有两个 Type属性.你会在.resx文件中看到它们,如下所示:
<data name="myLabel1.Type" xml:space="preserve">
<value>Example</value>
</data>
<data name=">>myLabel1.Type" xml:space="preserve">
<value>MyLabel, WindowsFormsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
Run Code Online (Sandbox Code Playgroud)
注意"myLabel1.Type"和">> myLabel1.Type"之间的区别.问题解决了.
你也会看到"$ this".使用前缀.它消除了表单属性的名称和表单上控件的名称之间的歧义.
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |