我正在创建一个支持多语言操作系统的应用程序。在应用程序的一个地方,我正在使用以下代码行。
Type t = typeof(System.Windows.Forms.NotifyIcon);
BindingFlags hidden = BindingFlags.NonPublic | BindingFlags.Instance;
t.GetField("text", hidden).SetValue(notifyIcon, notificationToolTip);
它可以在不同语言的操作系统上平稳运行吗,还是我必须更改不同语言的必填字段。例如,对于法语操作系统,我必须进行以下更改。
t.GetField("texte",hidden),SetValue(notifyIcon,notificationToopTip);
不,成员名称不取决于操作系统的语言设置。当您声明这样的类时:
public class Foo
{
public string Name { get; set; }
}
...好像编译器不会自动将其翻译成Nom
法语等。
另一方面,非公共成员的名称可以在不同版本的库之间进行更改-它们的全部非公共之处在于您无意使用它们,这意味着库作者完全可以自由使用以后再更改。那就是您的代码脆弱的一面,而不是国际化的一面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句