0

同じ基本クラスのアイテムを保持するリストがありますが、子クラスは異なります。これを逆シリアル化するにはどうすればよいですか?

例えば

class Base {
}

class Child: Base {
   int Property { get; set; }
}

class Ser {
   public List<Base> Values { get; set; }
}

ありがとう

4

1 に答える 1

0

デシリアライザーには、予想される子の型を自動的に推測する方法がありません。したがって、タグを使用して子のタイプを伝える必要があります。例えば:

YAML

- !!child
  Property: 1

- !!child
  Property: 2

C#

var deserializer = new Deserializer();
deserializer.RegisterTagMapping("tag:yaml.org,2002:child", typeof(Child));

var items = deserializer.Deserialize<Ser>(...);

私はここで働くフィドルをまとめました

于 2015-10-12T14:49:52.983 に答える