1

ServiceStack 有什么方法可以TypeSerializer更成功地处理盒装对象吗?我正在想象一个扩展/设置,以便根据需要对类型进行编码。例如,如果我要序列化和反序列化:

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

我最终会在我的 new 中得到一个盒装字符串Object y,而不是盒装Guid. 如果它足够了解给我一个盒装的 Guid,那就太好了。这可能吗?是否考虑过这样的功能TypeSerializer

4

1 回答 1

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");
于 2012-10-22T20:37:12.133 回答