相关疑难解决方法(0)

如何通过XML序列化来了解何时加载?

我正在尝试通过XML序列化加载一个对象树,此时它将加载对象,并非常愉快地创建树.我的问题围绕着这些类支持一定级别的审计这一事实.我希望能够做的是在每个对象加载完成后调用一些方法.

为了论证,假设我有一个相当通用的对象树,在不同的级别有不同的类,如:

 <Customer name="Foo Bar Inc.">
   <Office IsHq="True">
     <Street>123 Any Street</Street>
     <Town name="Anytown">
       <State name="Anystate">
         <Country name="My Country" />
       </State>
     </Town>
   </Office>
   <Office IsHq="False">
     <Street>456 High Street</Street>
     <Town name="Anycity">
       <State name="Anystate">
         <Country name="My Country" />
       </State>
     </Town>
   </Office>
 </Customer>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用默认的序列化器(以类似的方式创建类似的方法ShouldSerializeFoo)来确定每个对象的加载何时完成?

编辑: 我应该指出,暴露类似于反序列化后OnLoaded()可以调用的方法的明显案例,让我感到"不好做".

编辑2: 为了讨论这是我当前的黑客 "方法",它适用于基本级别,但子城市节点仍然认为它需要随着更改保存(在现实世界中,对象模型要复杂得多) ,但这至少会编译,而不需要完整的源代码)

public class Office
{
    [XmlAttribute("IsHq")]
    public bool IsHeadquarters { get; set; }

    [XmlElement]
    public string Street { get; set; }

    [XmlElement]
    public Town Town { get; set; …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization xml-serialization

14
推荐指数
2
解决办法
1万
查看次数

反序列化时触发功能

我有一个包含许多字段的类,这些字段通常在构造函数中从类中的其他数据计算出来.它们未被序列化为XML,因为对其余数据的任何更改都可能需要重新计算.

有没有办法设置函数调用以在反序列化时触发?

c# mono serialization xml-serialization

8
推荐指数
1
解决办法
6012
查看次数

标签 统计

c# ×2

serialization ×2

xml-serialization ×2

.net ×1

mono ×1