我有一个WCF服务,看起来像这样
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml)]
CompositeType GetCompositeTypeForUser(int userid);
...带有一个看起来像这样的CompositeType对象:
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public List<string> stuffAroundMe = new List<string>();
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
每当我调用服务时,我都会得到描述特定CompositeType的XML数据块。有没有一种方法可以使CompositeType对象返回客户端,而不必解析一堆XML并手动创建一个新的CompositeType对象?
另外,我有既可以在Visual Studio上的C#中,又可以在Android应用程序上的Java中使用的代码(实际上是在调用Web服务的代码)。当我可以控制从两侧传递的对象时,是否有一种避免解析大量xml的方法?
最佳答案
使用Web服务客户端库,而不是手动调用服务。对于.NET,将使用svcutil工具创建所需的客户端代码。看起来类似的东西可用于Java:What tools exist in Java that are equivalent to svcutil.exe for .NET?