好吧,我真的迷失了这个。我创建了一个 wcf 服务,我将 xml 发布到该服务,这些服务对数据进行了处理。一切都很好,除非我将打开的 xml 标记放在我的 xml 的最顶部。当我在调试模式下查看所有内容时,数据为空。
我在 wcf 中的 C# 代码是这样的:
public interface ITest
{
[OperationContract]
void DoWork();
[OperationContract]
[WebDispatchFormatter]
[WebInvoke(UriTemplate = "MyTest", Method = "*")]
void MyTest(PassedIn request);
}
[Serializable]
[DataContract(Namespace = "", Name = "")]
public class PassedIn
{
public PassedIn() { }
[DataMember]
public string firstname {get; set;}
[DataMember]
public string lastname {get; set;}
[DataMember]
public string email {get; set;}
}
这是不同的xml帖子:
<mypost>
<firstname>test</firstname>
<lastname>foo</lastname>
<email>test@bar.com</email>
</mypost>
<?xml version="1.0"?>
<mypost>
<firstname>test</firstname>
<lastname>foo</lastname>
<email>test@bar.com</email>
</mypost>
我可以通过将订单添加到数据成员来解决这个问题,当标签在 xml 中时数据不会丢失,如下所示:
public class PassedIn
{
public PassedIn() { }
[DataMember (order=1)]
public string firstname {get; set;}
[DataMember (order=2)]
public string lastname {get; set;}
[DataMember (order=3)]
public string email {get; set;}
}
但现在它产生了相反的效果。如果我没有“?xml 版本”标签,则数据将通过 null。
有没有人遇到过这个?真的可以使用一些建议。谢谢