不太清楚Category和DisplayName的含义,它为什么需要进行序列化,怎么会有一个属性来接收它的值
const string CategoryBasic = "通用";
[Category(CategoryBasic), DisplayName("光幕使能")]
public bool Basic_LightCurtainEnabled { get; set; }
不太清楚Category和DisplayName的含义,它为什么需要进行序列化,怎么会有一个属性来接收它的值
const string CategoryBasic = "通用";
[Category(CategoryBasic), DisplayName("光幕使能")]
public bool Basic_LightCurtainEnabled { get; set; }
1.这个跟序列化没关系,如果你们的代码有跟序列化扯上关系,那是你们自己的序列化代码的事情
2.你发的这个叫特性,默认如果你们没做其他定义,Category是框架自己的带的,给IDE工具箱用的,也是给PropertyGrid这种控件的用的
打开你的IDE,随便建立一个Winform项目,随便拖一个控件出来,然后你看IDE的属性栏,你就看到他有属性,而且属性分组了,并且还有分组名
这个就是他的用处
[Category(“外观”), DisplayName("光幕使能")] 他就会如上显示在外观那个分组,同时会把显示的名字显示成“光幕使能”,而不是显示“Basic_LightCurtainEnabled”
如果你想在代码里实现这样的东西,可以用用ProtertyGrid这个控件
这是我们通常认为的系统方法,如果你们的代码把这些玩意设计成其他功能,我们就没办法说了。毕竟特性(java叫注解)这东西属于声明式编程,你是这么声明的,而如何实现声明的功能,那就看自己的代码。反正系统自带实现是用在PropertyGrid这里