gpt4 book ai didi

c# - WCF DataContract DataMember 命令?

转载 作者:IT王子 更新时间:2023-10-29 04:37:02 24 4
gpt4 key购买 nike

是从按字母顺序创建的 DataContract 创建的 xml。我有一个 DataContract 类定义为:

[DataContract(Name = "User", Namespace = "")]
public class User
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string Password { get; set; }

}

当我执行以下 POST 时:

<User>
<FirstName>abc</FirstName>
<LastName>123</LastName>
<Email>email@email.com</Email>
<Password>pass</Password>
</User>

当我在发布后执行 GET 并将结果作为 JSON 返回时,电子邮件为空,但是如果我将 xml 发布为:

 <User>
<Email>email@email.com</Email>
<FirstName>abc</FirstName>
<LastName>123</LastName>
<Password>pass</Password>
</User>

当我执行 GET 并将其作为 JSON 返回时,电子邮件不再为空。为什么要这样做?

最佳答案

用 DataMemberAttribute 类中的 Order 参数装饰它:

[DataMember(Order = index)]

序列化器中的反射器按字母顺序排列。除非这样装饰:

[DataMember(Order = 0)]
public string FirstName { get; set; }
[DataMember(Order = 1)]
public string LastName { get; set; }
[DataMember(Order = 2)]
public string Email { get; set; }
[DataMember(Order = 3)]
public string Password { get; set; }

Read more here...

关于c# - WCF DataContract DataMember 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816478/

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