2012-10-22 36 views
1

ServiceStack的TypeSerializer有没有办法处理盒装对象,并取得一些成功?我想象一个扩展/设置来根据需要对类型进行编码。例如,如果我是序列化和反序列化:ServiceStack的TypeSerializer可以处理盒装对象吗?

Object x = Guid.NewGuid() 
Object y = serializer.DeserializeFromString(serializer.SerializeToString(x)) 

我将最终得到一个盒装串在我的新Objecty,而非盒装Guid。如果它知道足够给我一个盒装Guid,那将是很好的。这可能吗? TypeSerializer有这样的功能吗?

+0

TypeSerializer在上述API中有什么作用?即,您希望在JSV TypeSerializer中实现的完整代码示例是什么?为什么。 – mythz

+0

我编辑了一个更全面的代码示例,使其更加清晰 –

回答

1

对于值类型,没有在线路上发射的类型信息。你要么需要指定调用点的类型信息,例如:

object y = x.ToJsv().FromJsv<Guid>(); 

或者类型的信息是你要反序列化到类型,例如:

public class Poco { 
    public Guid Id { get; set; } 
} 

var dto = new Poco { Id = Guid.NewGuid() }.ToJsv().FromJsv<Poco>(); 

或者你也可以使用动态API,例如:

object id = JsonObject.Parse(new Poco { Id = Guid.NewGuid() }.ToJson()) 
    .Get<Guid>("Id"); 
相关问题