一些代码:如何获取对象属性的默认值?
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定义的'default'值。
任何帮助表示赞赏,欢呼声。
答案将取决于您如何定义“默认值”。两个明显的定义是CLR默认值(对于引用类型为“null”,对于值类型为0)或“DefaultValueAttribute”。你能编辑你的问题来澄清你感兴趣吗? –
嗨,道歉;我应该指定。它是通过DefaultValueAttribute定义的默认值。 – Wex