【发布时间】:2013-01-09 20:22:06
【问题描述】:
我经常遇到这个问题,但我还没有找到令人满意的解决方案。
我正在实现一个用于保存游戏的阅读器(但它也可以应用于其他类型的文件)。根据版本,有一些添加的条目,但顺序始终保持不变。因此我创建了一个类:
public class Entry<T> {
public T Value;
public readonly FileVersion MinVersion;
public Entry(T v = default(T), ScenarioVersion m = FileVersion.V115) {
Value = v;
MinVersion = m;
}
}
现在,你猜,我想用尽可能少的代码编写这些条目。我只想写一次if (version >= MinVersion) { /* write data */ }。 Entries 可以是原始类型或对象,这就是问题所在......
应该为每个需要的原始类型定义一个接口并实现它作为包装器吗?还是有更优雅的解决方案?
【问题讨论】:
-
原谅我的无知,但究竟是什么问题?原始类型可以在 C# 中序列化。如果您想对序列化进行更多控制,请查看stackoverflow.com/questions/628843/…。
-
我看不到如何解决以下两个问题:1.某些值仅在满足某个条件时才写入,2.它不是静态结构,包含
struct { int len; char[len]; }之类的东西. -
目前还不清楚是什么问题。我会尝试回答,但问题中的一两个示例可能是最好的。
标签: c# serialization