gpt4 book ai didi

.NET .resx 文件 : why does name attribute often start with >>

转载 作者:行者123 更新时间:2023-12-04 17:48:50 27 4
gpt4 key购买 nike

在许多 .resx 文件中,我遇到了这样的事情:

<data name="&gt;&gt;OurLabel.Name" xml:space="preserve">
<value>OurLabel</value>
</data>

我的问题是:为什么属性 name在许多情况下 - 但并非总是如此 - 从 &gt;&gt; 开始?

最佳答案

您在 Winforms 窗体的 .resx 文件中找到了它,并将其 Localizable 属性设置为 True。 &gt;> 的 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; }
}

将这个放在窗体上,现在控件有两个 Type 属性。您将在 .resx 文件中看到它们,如下所示:
 <data name="myLabel1.Type" xml:space="preserve">
<value>Example</value>
</data>
<data name="&gt;&gt;myLabel1.Type" xml:space="preserve">
<value>MyLabel, WindowsFormsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>

请注意“myLabel1.Type”和“>>myLabel1.Type”之间的区别。问题解决了。

您还会看到“$this”。使用的前缀。它消除了表单属性名称和表单控件名称之间的歧义。

关于.NET .resx 文件 : why does name attribute often start with &gt;&gt;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23382276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com