gpt4 book ai didi

C# - 使用 DataContractJsonSerializer 序列化常量

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:10 26 4
gpt4 key购买 nike

我正在上以下课:

[DataContract]
class ExampleClass
{
//Properties
[DataMember(Name = "method")]
private const string method = "Example Constant";
...
...

DataContractJsonSerializer 似乎没有在 JSON 输出中包含常量“方法”。

如何保持成员不变,并使类序列化它?

谢谢。

最佳答案

对于 JSON 输出,const 根本不可访问,因为它是 private。然而,序列化 const 根本没有意义,因为 const 是静态成员并且属于类本身,而不属于特定实例。因此,序列化程序无法在实例上设置它,因为该实例上没有任何设置。

话虽如此,您可以将常量包装在一个属性中:

[DataContract]
class ExampleClass
{
private const string method = "Example Constant";

//Properties
[DataMember(Name = "method")]
public string Method { get; set; }

public ExampleClass(this.Method = method; }
}

PS.:我不熟悉契约(Contract)序列化器,但这是您使用 Xml 序列化器所做的事情。也许使用 contract-ser 你也可以拥有一个 get-only 属性,因此你不需要额外的构造函数,但我不确定这一点。

关于C# - 使用 DataContractJsonSerializer 序列化常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com