首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标识空值,并在DeSerialization期间丢失参数,并将空值分配给默认值

标识空值,并在DeSerialization期间丢失参数,并将空值分配给默认值
EN

Stack Overflow用户
提问于 2014-02-20 11:48:16
回答 1查看 653关注 0票数 1

下面是我的问题,如何识别空值,以及在DeSerialization和将空值赋值给默认值时遗漏的参数。

我尝试过的用于赋值空值的示例代码

代码语言:javascript
复制
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过程中不起作用--你能和我分享一下你如何实现这个目标的任何想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-20 17:52:31

对于您已经发布的这个特定示例,您不必在反序列化期间处理null值。您可以读取DefaultValue类的url属性上的RoomImage属性。以下是代码:

代码语言:javascript
复制
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属性是nullempty或仅由空格组成的字符串,则将返回DefaultValue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21906875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档