我有一个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?

09-10 02:03