【发布时间】:2014-06-30 20:35:11
【问题描述】:
我有一个我认为是相当简单的问题,但无法在网上找到任何答案。我有一个 WCF 服务,它接受三个参数并将返回一个数字列表(id)。现在三个传入参数被完全忽略,我只是在测试返回值。这就是我遇到问题的地方。我需要以 XML 格式返回候选 ID 列表。规范要求列表如下所示:
<Disabled>
<Candidate>123456789</Candidate>
<Candidate>ABCDEFGHI</Candidate>
</Disabled>
如何让 WCF 服务返回这样的数据。使用列表时,数据返回如下:
<Disabled>
<Candidate>
<a:string>test</a:string>
<a:string>test1</a:string>
</Candidate>
<Disabled>
有没有什么方法可以在不要求我们的客户更改其规格的情况下将其更改为如上所示返回?
这是我的请求和响应的数据合同:
[DataContract]
public class RequestDeactivated
{
[DataMember(Order = 0)]
public string companyId { get; set; }
[DataMember(Order = 1)]
public string companyToken { get; set; }
[DataMember(Order = 2)]
public int verificationToken { get; set; }
}
[DataContract]
public class ResponseDeactivated
{
[DataMember]
public List<string> Candidate { get; set; }
}
我从未创建过返回此类列表的服务,因此我们将不胜感激。 谢谢
编辑:我已经包含了处理实际返回内容的代码。请注意,我目前只是在测试,并没有在此处添加逻辑。
public ResponseDeactivated Deactivate(RequestDeactivated data)
{
ResponseDeactivated d = new ResponseDeactivated();
d.Candidate = new List<string>();
d.Candidate.Add("test");
d.Candidate.Add("test1");
return d;
}
【问题讨论】:
-
返回
ResponseDeactivated不需要处理xml。这些框架在这里为您完成这些工作(xml/json 序列化/反序列化等)。 -
当我返回 ResponseDeactivated 时,我得到了我不想要的 a:string 格式。我将更新我的问题,以便显示我处理当前返回内容的代码