C# 属性未通过newtonsoft在Json中序列化

C# 属性未通过newtonsoft在Json中序列化,c#,.net,asp.net-core,.net-core,visual-studio-2019,C#,.net,Asp.net Core,.net Core,Visual Studio 2019,类中定义了许多属性,但其中一个属性未序列化(使用newtonsoft),该属性如下所述: public override string Value {​​​​ set { ​​​​ if (value == null) { ​​​​ this.Null = true; }​​ ​ ​ else if (value == string.Empty) { ​​​​ _A = string.

类中定义了许多属性,但其中一个属性未序列化(使用newtonsoft),该属性如下所述:

public override string Value
{​​​​
  set    
  {
​​​​
    if (value == null)    
    {    ​​​​
       this.Null = true;    
    }​​ ​ ​
    else if (value == string.Empty)
    {    ​​​​
       _A = string.Empty;    
       _P = string.Empty;    
       _S = string.Empty;    
    }​​​ ​
    else
    {​​​ ​

         value = _A + _P + _S;    
     }​​​​

   }​​​​    
}

但是当我们在属性中定义getter时,它正在被序列化,所以请建议;我们不希望将getter放在属性中。

[JsonProperty]
属性设置为您的属性。
但总的来说,您可以将getter设置为private,这样您就不会将数据暴露给其他类,但它可以帮助解决您的问题。

首先,您不知道json现在如何序列化它,也许会使它成为一个只对属性设置的方法看起来很有趣。如果您想填充字段,只需告诉json使用注释即可

[JsonProperty("_A")]
private string _A ;

[JsonProperty("_P")]
private string _P ;

[JsonProperty("_S")]
private string _S;

[JsonIgnore]
public override string Value
{​​​​
  set    
  {
​​​​
    if (value == null)    
    {    ​​​​
       this.Null = true;    
    }​​ ​ ​
    else if (value == string.Empty)
    {    ​​​​
       _A = string.Empty;    
       _P = string.Empty;    
       _S = string.Empty;    
    }​​​ ​
    else
    {​​​ ​

         value = _A + _P + _S;    
     }​​​​

   }​​​​    
}

谢谢您的时间,但问题是我们不能更改代码;在我们找到具体原因之前,请让我知道为什么我们必须放置[jsonproperty]属性,因为newtonsoft已经满足了这一要求