gpt4 book ai didi

serialization - .NET WebAPI 序列化 k_BackingField 肮脏

转载 作者:行者123 更新时间:2023-12-03 05:07:44 26 4
gpt4 key购买 nike

当我序列化以下内容时:

[Serializable]
public class Error
{

public string Status { get; set; }
public string Message { get; set; }
public string ErrorReferenceCode { get; set; }
public List<FriendlyError> Errors { get; set; }
}

我得到了这个令人恶心的困惑:

<ErrorRootOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance"   xmlns="http://schemas.datacontract.org/2004/07/Printmee.Api">
<_x003C_Errors_x003E_k__BackingField>
An exception has occurred. Please contact printmee support
</_x003C_Errors_x003E_k__BackingField>
<_x003C_LookupCode_x003E_k__BackingField>988232ec-6bc9-48f3-8116-7ff7c71302dd</_x003C_LookupCode_x003E_k__BackingField>
</ErrorRootOfstring>

什么给了?我怎样才能把这个变得漂亮? JSON 响应还包含 k_BackingField

最佳答案

默认情况下,您不需要使用 [Serializable] 也不需要使用 [DataContract] 来使用 Web API。

只需保持模型不变,Web API 就会为您序列化所有公共(public)属性。

只有当您想对所包含的内容有更多控制时,才可以使用 [DataContract] 和要包含在 [DataMember] 中的属性来装饰您的类(因为DCS 和 JSON.NET 都尊重这些属性)。

如果由于某种原因,您的类需要 [Serializable] (即,您出于某种原因将其序列化到内存流中,进行深层复制等),那么您必须同时使用两者属性结合起来可以防止支持字段名称:

[Serializable]
[DataContract]
public class Error
{
[DataMember]
public string Status { get; set; }
[DataMember]
public string Message { get; set; }
[DataMember]
public string ErrorReferenceCode { get; set; }
[DataMember]
public List<FriendlyError> Errors { get; set; }
}

关于serialization - .NET WebAPI 序列化 k_BackingField 肮脏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334382/

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