【发布时间】:2016-09-06 11:22:28
【问题描述】:
我有一个运行完美的 C# 中的 WCF SOAP 服务。但现在我想将数据类型添加到 SOAP 响应中。
如果我返回一个布尔值或字符串数组,我会得到类似:
<a:elements xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<b:string>ID</b:string>
<b:string>Description</b:string>
<b:string>Material</b:string>
<b:string>Price</b:string>
</a:elements>
或
<a:updatePermissions xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<b:boolean>true</b:boolean>
<b:boolean>false</b:boolean>
<b:boolean>false</b:boolean>
<b:boolean>false</b:boolean>
</a:updatePermissions >
但是如果我发送一个复杂的类型,我会得到类似
<a:Elements>
<a:Material>
<a:Id>465</a:Id>
<a:Description>TestAddMaterial</a:Description>
<a:MaterialId>1</a:MaterialId>
<a:PriceForKg>0.03</a:PriceForKg>
</a:Material>
</a:Elements>
如何转换复杂类型的响应,如数组的响应?
类似:
<a:Elements>
<a:Material>
<a:integer>465</a:integer>
<a:string>TestAddMaterial</a:string>
<a:integer>1</a:integer>
<a:double>0.03</a:double>
</a:Material>
</a:Elements>
此时不需要变量的名称。
类本身是一个带有 DataMember 的 DataContract。
【问题讨论】:
-
在我看来,这会违背最佳实践,而且我不确定它是否真的可行,如果没有我想象的大量工作。
-
好的,你会推荐什么来获取类型?有没有一种简单的方法可以将类型添加为属性?