【问题标题】:Proper way to do one-way serialization进行单向序列化的正确方法
【发布时间】:2012-02-22 17:11:01
【问题描述】:

假设我有这样的课程:

public class AlphaBravoRatio
{
    public int A {get; set;}
    public int B {get; set;}
    public double Ratio { get { return A * 1.0 / B; } }
}

有没有办法装饰这个类,使 Ratio 被序列化但不被反序列化?

它适用于这个实现,但我想知道它是否可以在没有空设置器的情况下完成。

public class AlphaBravoRatio
{
    public int A {get; set;}
    public int B {get; set;}
    public double Ratio 
    { 
        get { return A * 1.0 / B; } 
        set {}
    }
}

【问题讨论】:

  • 如果您不打算反序列化(从而获取值),为什么还需要序列化比率?
  • 好吧,消费者将有一个自动生成的数据类(如果使用“添加服务引用...”),其中不包含计算逻辑。否则,我假设您将您的课程提供给消费者,以便从您的库中获得与您相同的数据类。编辑:抱歉,您的意思是非 WCF 序列化。
  • 他们可以使用 XML 为所欲为。我的服务只是广播它;它不共享代码,也不关心他们用它做什么。它只是提供所感知的信息。
  • 我不认为你可以使用 XML 序列化程序,“认为”我的意思是,我从来没有找到一种方法,我已经按照你的建议做了。您可以编写自己的序列化程序,但我怀疑它是否值得。

标签: c# xml-serialization


【解决方案1】:

您可以实现 IXmlSerializable 并且只实现 WriteXml 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    相关资源
    最近更新 更多