C#webservice MessageContract中的额外节点

时间:2018-09-20 10:26:57

标签: c# web-services

我有一个任务来创建一个完全适合正在运行的应用程序的模块。所以我必须坚持原来的结构。 我通过以下输入使代码工作:

<getStaffInfoDelta  xmlns="test1">
            <TB>1</TB>
            <rqUID>1</rqUID>
            <Date>2010-02-02</Date>
            <ChangeDate>1</ChangeDate>
  </getStaffInfoDelta>

那是它的样子:

[MessageContract(IsWrapped = true, WrapperName = "getStaffInfoDelta", WrapperNamespace = "test1")]
public class getStaffInfoDeltaParam{
 [MessageBodyMember(Namespace = "test1")]
 public string TB { get; set; }
 [MessageBodyMember(Namespace = "test1")]
 public string rqUID { get; set; }
 [MessageBodyMember(Namespace = "test1")]
 public DateTime Date { get; set; }
 [MessageBodyMember(Namespace = "test1")]
 public string ChangeDate { get; set; }
}

这很好,但是我不明白如何修改我的类以从这样的输入中获取参数:

<getStaffInfoDelta  xmlns="test1">
       <param xmlns="test">
            <TB>1</TB>
            <rqUID>1</rqUID>
            <Date>2010-02-02</Date>
            <ChangeDate>1</ChangeDate>
       </param>
  </getStaffInfoDelta>

我尝试过这种方式:

[MessageContract(IsWrapped = true, WrapperName = "getStaffInfoDelta", WrapperNamespace = "test1")]
public class getStaffInfoDeltaParam
{
[MessageBodyMember(Namespace = "test1")]
public param innerParam { get; set; }
}

[MessageContract(IsWrapped = true, WrapperName = "param", WrapperNamespace = "test")]
public class param
{
[MessageBodyMember(Namespace = "test")]
public string TB { get; set; }
[MessageBodyMember(Namespace = "test")]
public string rqUID { get; set; }
[MessageBodyMember(Namespace = "test")]
public DateTime Date { get; set; }
[MessageBodyMember(Namespace = "test")]
public string ChangeDate { get; set; }
}

但是出了点问题,我将getStaffInfoDeltaParam设置为空

0 个答案:

没有答案