Ada*_*dam 8 c# xml namespaces xml-deserialization
我创建了一个API包装类库,用于从第三方使用rest API.
直到他们最近在他们的产品的最新版本中更新API并且在根元素中添加了命名空间,现在我的反序列化代码失败了.
我的一个课程的一个例子:
[Serializable]
[XmlRootAttribute(ElementName = "exit_survey_list")]
public class SupportExitSurveyCollection : ApiResult { .... }
Run Code Online (Sandbox Code Playgroud)
如果我将XmlRootAttribute中的Namespace属性设置为要返回的新命名空间,那么它将再次正常工作.
但我需要支持两个版本的API(命名空间而不是命名空间),因为我无法确定哪个版本的API可用.
我想让这个工作没有重复不同版本的类,但不确定是否可能.
感谢您的任何意见/建议.
我认为这是不可能的。
您可以实现IXmlSerialized接口,并自己控制序列化 - 这可以工作,但可能不是您想要的,因为它需要您自己在代码中进行大量映射。
另一种选择是预处理消息并添加名称空间(如果缺少)。然后你就可以有一个反序列化过程。
| 归档时间: |
|
| 查看次数: |
631 次 |
| 最近记录: |