【发布时间】:2011-06-13 02:45:31
【问题描述】:
以下是我的运营合同
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Xml,
UriTemplate = "Add?num1={a}&num2={b}")]
Addition AddNumbers(string a, string b);
以下是我的 OperationContract 实现,我返回一个 Addition Class 对象
public Addition AddNumbers(string a, string b)
{
Addition objadd = new Addition();
objadd.num1 = a;
objadd.num2 = b;
objadd.num3 = (Convert.ToInt32(a )+ Convert.ToInt32(b)).ToString();
return objadd;
}
以下是我的数据合同
[DataContract(Name="Add")]
public class Addition
{
private string _num1;
private string _num2;
private string _num3;
[DataMember(Name="FirstNumber",Order=1)]
public string num1
{
set { _num1 = value; }
get { return _num1; }
}
[DataMember(Name="SecondNumber",Order=2)]
public string num2
{
set { _num2 = value; }
get { return _num2; }
}
[DataMember(Name = "Result",Order=3)]
public string num3
{
set { _num3 = value; }
get { return _num3; }
}
}
我正在测试我的服务如下 http://localhost/Service1.svc/xml/Add?num1=5&num2=4
当我浏览上面的 URL 时,我得到下面的输出
<Add
xmlns="http://schemas.datacontract.org/2004/07/MySampleService"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FirstNumber>5</FirstNumber>
<SecondNumber>4</SecondNumber>
<Result>9</Result>
</Add>
但我的要求是我的输出应该如下所示
<Add FirstNumber="5" SecondNumbe="4" Result="9">
</Add>
无论如何我可以通过 Datamembers 实现这一目标
【问题讨论】: