如何(de)将类型序列化为属性的键,但是当它是根对象时作为完整的POCO?

时间:2013-11-13 21:35:01

标签: c# serialization redis servicestack

我正在探索使用ServiceStack和Redis将redis中的文档保存为项目。如果我可以在文档类型中使用本地存储器中的其他文档类型的getter和setter,但是在(de)序列化时作为标量键,引用属性的redis位置,那将是整洁的(可能)。类似的东西:

public class Sport
{
    public string Key { get; set; }
    public string Name { get; set; }
    public int RandomFactNumberOfPlayers { get; set; }
    // lots of other random properties about sport I don't want to duplicate in my player serialization
}

public class Player
{
    public string Key { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Sport { get; set; }
}

将一项运动和一名球员序列化为:

{key: 'a', name: 'Football', randomFactNumberOfPlayers: 123456},
{key: 'b', firstName: 'Tom', lastName: 'Brady', sport: 'b'}

当反序列化这些记录时,我将有机会查看我的redis存储库并获取b的密钥并将其作为Sport运行并将其分配给我的播放器实例的运动属性。

我看了一下JsConfig(De)serializeFn和Raw(De)serializeFn,我想我可以从一个(简单的)基本文档类型派生我的类型,带一个键,并且(de )来自字符串键的ser文档,但我看到的问题是将为根实例和属性调用该函数。

服务堆栈中是否有自定义属性(de)序列化程序覆盖的概念?或者有更好的方法吗?

0 个答案:

没有答案