|
|
1
47
我通常使用的地方
来自MSDN:
MSDN - DefaultValueAttribute Class 编辑:正如罗兰指出的,正如他们答案中提到的,属性也被表单设计者使用。 |
|
|
2
12
和所有属性一样,它是元数据,因此“它只用于装饰”。您必须手动设置实际默认值。“是最接近的。 微软继续说 DefaultValueAttribute :
也就是说,您仍然需要使构造函数与您所说的默认值相匹配,以便信任它的代码仍然有效,例如内置的XML序列化将使用它们来计算是否对属性进行序列化;同样,表单设计器将使用
|
|
|
3
12
四年后更新:目前,设置json.net的 DefaultValueHandling 参数使默认值按@aron预期的方式工作:
|
|
|
4
8
实际上,你可以很容易地“强迫”它在任何类上工作。 首先,需要在系统命名空间中写入对象扩展方法:
然后,在类的构造函数中,如果类的层次结构足够高,而实际需要此类自动默认值初始化,则只需添加一行:
|
|
|
5
2
“它在任何其他使用它之前设置属性的值。” -->否。默认值仅适用于设计器。默认值将不会序列化到设计器代码中。 “它不适用于自动属性。” ——没有 “这只是为了装饰。必须手动设置实际默认值。“ -->否。因为设计器序列化。但必须手动设置。 |
|
|
6
1
从 MSDN 帮助:
我需要将默认值属性设置为非静态的。我怎样才能在任何时候设置它呢? 通过重写包含属性的类中的shouldSerialize函数来解决。 例子:
|
|
|
7
1
在最新版本的
|
|
|
8
0
您可以使用面向方面的框架(如Afterthought或Postshap)来实现这种魔力。 |