作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我序列化以下内容时:
[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/
当我序列化以下内容时: [Serializable] public class Error { public string Status { get; set; } public st
我是一名优秀的程序员,十分优秀!