可以使ServiceStack的TypeSerializer处理盒装对象吗?

时间:2012-10-22 18:49:38

标签: serialization servicestack

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

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

我最终会在我的新Object y中使用带框的字符串,而不是装箱Guid。如果它足够了解给我一个盒装的Guid会很好。这有可能吗?是否已为TypeSerializer考虑此功能?

1 个答案:

答案 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");