【发布时间】:2011-01-17 08:46:40
【问题描述】:
一些代码:
foreach (System.Reflection.PropertyInfo pi in myObject.GetType().GetProperties())
{
if (pi.CanWrite)
{
object value = pi.GetValue(Properties, null);
// if (value is not default)
// {
X.addAttribute(pi.Name, value);
// }
}
}
如果属性处于其默认值,我正在尝试做的不是调用“X.addAttribute...”行。我假设有某种方法可以获取属性的 DefaultValue,以便我可以进行比较?
出于我的目的,我试图获取 DefaultValueAttribute 定义的“默认”值。
感谢您的帮助,干杯。
【问题讨论】:
-
答案将取决于您如何定义“默认值”。两个明显的定义是 CLR-Default(
null用于引用类型,0 用于值类型)或DefaultValueAttribute。您能否编辑您的问题以阐明您对哪个感兴趣? -
嗨,抱歉;我应该指定的。它是通过 DefaultValueAttribute 定义的默认值。
标签: c# default propertyinfo