让你的控件属性注释支持多语言

原创 2007年09月17日 17:06:00
我们知道在开发控件时,可以为某个属性添加DescriptionAttribute标记,就可以在属性栏中显示他的注释,像下面这样:
        private int _qua;
        [Description(
"此订单明细的数量")]
        
public int Qua {
            
get return _qua; }
            
set { _qua = value; }
        }


但你会发现,注释的字符串是中文文本写死的,如果我希望控件在英文的环境下显示英文的注释应该怎么办呢?.NET Framework就可以显示不同语言的注释,他是怎么解决的呢?

反编译.NET Framework,我们发现他的注释并没有DescriptionAttribute,而是使用了SRDescriptionAttribute ,例如:
        [SRDescription("ControlBottomDescr")]
        
public int Bottom {
            
get {
                
return (this.y + this.height);
            }

        }
在注释中,.NET Framework没有的确没有直接写英文注释,而是写了一个资源关键字,再查看SRDescriptionAttribute 的实现。
    [AttributeUsage(AttributeTargets.All)]
    
internal sealed class SRDescriptionAttribute : DescriptionAttribute {
        
private bool replaced;

        
public SRDescriptionAttribute(string description)
            : 
base(description) {
        }


        
public override string Description {
            
get {
                
if (!this.replaced) {
                    
this.replaced = true;
                    
base.DescriptionValue = SR.GetString(base.Description);
                }

                
return base.Description;
            }

        }

    }

太简单,太巧妙了,他重载了Description的Get,改从资源文件中获取。
就这么简单。  

C# BackgroundWorker分析以及使用

namespace System.ComponentModel {     //     // 摘要:     //     在单独的线程上执行操作。     [DefaultEvent("...
  • u012343179
  • u012343179
  • 2016年07月16日 11:38
  • 790

请问要想制作多语言版本的安装包,怎样来实现

请问要想制作多语言版本的安装包,怎样来实现//
  • yangyongfei
  • yangyongfei
  • 2005年01月05日 12:30
  • 519

【UWP开发】UWP如何支持多语言

可以支持下我们的游戏,uwp支持xbox play anywhere,购买地址 在发布游戏到商店的时候,发现windows store会根据包支持的语言进行显示,而其实我们游戏是支持很多语言的,但是...
  • egostudio
  • egostudio
  • 2018年01月17日 15:22
  • 60

个性注释,让你的代码飞起来

写在前面的话:实在无聊开始写博客。以下是收集了以下神注释,希望能为广大程序员们带来快乐,缓解你们工作中的压力...
  • kl0715
  • kl0715
  • 2017年01月18日 11:15
  • 1727

如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?

采用统一编码UTF-8方式编码 1- 应用字符集的选择;所以对提供了多语言版本的网站来说,Unicode字符集应该是最理想的选择。它是一种双字节编码机制的字符集,不管是东方文字还是西方文字,在Uni...
  • xujie_0311
  • xujie_0311
  • 2014年12月20日 22:00
  • 2862

ASP.NET网站支持多语言

一、   本地资源文件(App_LocalResources): ①、     本地资源的生成及调用 1、本地资源的VS自动生成方法: 将页面调整到【设计】视图,然后在VS2008菜...
  • jiangfei009003
  • jiangfei009003
  • 2014年12月25日 22:54
  • 741

支持多语言、多用户、多数据库、完美URL之路过秋天版博客发布[绝对有杀伤力的博客]

前言:   Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighl...
  • cyq1162
  • cyq1162
  • 2016年11月23日 12:09
  • 457

js日历控件支持多国语言

var cal; var isFocus=false; // //main function of Calendar datePicker function SelectDate(obj) {...
  • u011340807
  • u011340807
  • 2013年12月04日 12:59
  • 1429

多语言字符串的字体问题

一个字符能够在Windows界面上显示出来,首先是当前编码要跟该字符的编码一致,同时还需要当前的字体支持。如果编码不匹配,显示出来往往就是乱码,如果字体不匹配,显示出来则往往是一个个方框。这里我们要分...
  • easebone
  • easebone
  • 2012年03月22日 12:20
  • 3887

分享两种实现Winform程序的多语言支持的解决方案

转载自:http://www.cnblogs.com/zuowj/p/5878228.html 内容太长了,就不贴了。
  • u012377333
  • u012377333
  • 2016年09月26日 17:44
  • 886
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让你的控件属性注释支持多语言
举报原因:
原因补充:

(最多只允许输入30个字)