因业务需要在Android端解析.net后台接口传递的XML,由于Android精简了jdk,无法使用原生XMLDecoder,因此选择了XStream实现。
C#后台使用原生XmlSerializer序列化
public static string Serialize(object data) { string result = string.Empty; try { using (MemoryStream ms = new MemoryStream()) { XmlSerializer xml = new XmlSerializer(data.GetType()); xml.Serialize(ms, data); byte[] arr = ms.ToArray(); result = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); } } catch (Exception ex) { throw; } return result; }
移动端使用XStream对接口返回的XML进行解析,注意的是如果序列化的实体类中的字段包含其它实体类,解析时需要为其设置对应类的别名,下面通过反射获取这些类