2021年3月17日星期三

你不知道C#只带有 get 访问器的属性是只读属性?

问题窥探

之前有个哥们在使用Newtonsoft.Json反序列化的时候,发现明明有数据,但是就是序列化不出来数据到实体里面。

 

 

 

 

 

 

咋一看,确实没什么问题啊,字符串的数据是存在的。那么问题出在哪里呢。

解决思路

1、我让他把字符串复制出来,使用在线工具解析下,和实体对应的名称核对看下是否有出入。发现确实没问题。

 

 

2、于是我让他把实体文件发我下。

 

 

我查看了下,名称确实没问题。等等,这属性  public ListData { get; }?

 

 /// <summary> /// 跟踪信息头 /// </summary> public class O {  /// <summary>  /// 业务数据。  /// </summary>  [JsonProperty("data")]  public List<TraceDto> Data { get; }  /// <summary>  /// 状态。  /// </summary>  [JsonProperty("status")]  public int Status { get; }  ///// <summary>  ///// 异常消息。  ///// </summary>  //[JsonProperty("msg")]  //public string Message { get; } }

于是,我让他这么干。

{ get; }=>{ get; set; }

 

 

问题解决。

总结

属性按如下方式,根据所使用的访问器进行分类:

只带有 get 访问器的属性称为只读属性。无法对只读属性赋值。

只带有 set 访问器的属性称为只写属性。只写属性除作为赋值的目标外,无法对其进行引用。

同时带有 get 和 set 访问器的属性为读写属性。

在属性声明中,get 和 set 访问器都必须在属性体的内部声明。

使用 get 访问器更改对象的状态是一种错误的编程样式。

 

 









原文转载:http://www.shaoqun.com/a/633725.html

跨境电商:https://www.ikjzd.com/

夸克:https://www.ikjzd.com/w/1237

沃尔玛:https://www.ikjzd.com/w/220


问题窥探之前有个哥们在使用Newtonsoft.Json反序列化的时候,发现明明有数据,但是就是序列化不出来数据到实体里面。咋一看,确实没什么问题啊,字符串的数据是存在的。那么问题出在哪里呢。解决思路1、我让他把字符串复制出来,使用在线工具解析下,和实体对应的名称核对看下是否有出入。发现确实没问题。2、于是我让他把实体文件发我下。我查看了下,名称确实没问题。等等,这属性publicListData
文化衫事件:https://www.ikjzd.com/w/1932
asinseed:https://www.ikjzd.com/w/533
拍拍网:https://www.ikjzd.com/w/2205
化妆品进口规模快速增长,化妆品行业转型成为必要:https://www.ikjzd.com/home/114686
Amanbo肯尼亚站操作指引:https://www.ikjzd.com/tl/102086
关于亚马逊"二审"问题,这些你一定要知道!:https://www.ikjzd.com/home/104951

没有评论:

发表评论