下面是我的问题,如何识别空值,以及在DeSerialization和将空值赋值给默认值时遗漏的参数。
我尝试过的用于赋值空值的示例代码
public class RoomImage
{
private string useurl = "~/no-picture-available.jpg";
[DefaultValue("~/no-picture-available.jpg")]
public string url { get { return useurl; } set { useurl = value; } }
}但是在DeSerialization过程中不起作用--你能和我分享一下你如何实现这个目标的任何想法吗?
发布于 2014-02-20 17:52:31
对于您已经发布的这个特定示例,您不必在反序列化期间处理null值。您可以读取DefaultValue类的url属性上的RoomImage属性。以下是代码:
public class RoomImage
{
private string useurl;
[DefaultValue("~/no-picture-available.jpg")]
public string url
{
get
{
return !string.IsNullOrWhiteSpace(useurl)
? useurl
: ((DefaultValueAttribute)
(TypeDescriptor.GetProperties(this)["url"].Attributes[
typeof (DefaultValueAttribute)])).Value.ToString();
}
set { useurl = value; }
}
}使用此代码,如果将一个值赋值给url属性,则当您尝试访问它时,它将返回该特定值。如果url属性是null、empty或仅由空格组成的字符串,则将返回DefaultValue。
https://stackoverflow.com/questions/21906875
复制相似问题