【问题标题】:Load a SOAP XML message into two different C# objects将 SOAP XML 消息加载到两个不同的 C# 对象中
【发布时间】:2017-03-01 13:57:03
【问题描述】:

我有一个 Java 后端和一个 C# Silverlight UI,它们通过 SOAP XML 消息相互通信。 该消息包含一个大对象,其中包含许多较小的对象,其中包含许多甚至更小的对象等等。 我的目标是在 C# 端有这个对象的两个实例,一个是原始的,另一个是用户可以编辑的。 我可以通过在 C# 端深度复制对象来实现它,但是实现起来有点复杂并且速度很慢。 我可以在 SOAP XML 消息中发送两个相同的对象,但这会浪费资源。

我能否将相同的 SOAP XML 消息的内容加载到两个不同的 C# 对象中,它们不指向相同的引用。

提前致谢

【问题讨论】:

    标签: java c# xml soap


    【解决方案1】:

    当然可以……

    var myFirstInstance = MyDeserializeMethod(incomingXML);
    var mySecondInstance = MyDeserializeMethod(incomingXML);
    

    由于它首先被反序列化,因此它不是对incomingXML 的直接引用 - 您正在分配从 MyDeserializeMethod 返回的对象,每次运行它都是不同的对象。

    【讨论】:

    • 感谢您的回答,但我正在使用属性进行序列化/反序列化。 System.Xml.Serialization.XmlElementAttribute(Order=0) 这种情况下有没有办法编写自定义反序列化器?
    • 最简单的方法是设置类来模拟您期望接收的数据。然后,您可以通过创建 XmlSerializer 对象并调用 mySerializer.Deserialize 来自动反序列化。这将与编写自定义方法具有相同的效果(您也可以这样做......)这是一个示例:stackoverflow.com/questions/10518372/…
    猜你喜欢
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多