1

我对 ServiceStack (SS) 有一个奇怪的问题。我传递给方法的实体总是被 SS 序列化为空的 json 字符串。所以 s 总是“{}”。我调试并看到该实体是一个水合实例,具有带值的属性。

任何想法为什么会这样?

public virtual void Serialize<TEntity>(TEntity entity, Stream stream)
{
    // s is always {}
    var s = JsonSerializer.SerializeToString(entity);

    // rest is not important at this point...
    s = JsvFormatter.Format(s);
    using (var writer = new StreamWriter(stream))
    {
        writer.Write(s);
    }
}

我正在编辑问题,准确显示传入的 (VolumeCreated) 实体是什么。

public class VolumeEvent : IEvent<VolumeID>
{
    public VolumeEvent(VolumeID identity)
    {
        Identity = identity;
    }

    #region Implementation of IEvent<out VolumeIdentity>

    public VolumeID Identity { get; private set; }

    #endregion
}

public class VolumeCreated : VolumeEvent
{
    public DateTime PublishDate { get; set; }
    public string Title { get; set; }

    public VolumeCreated(VolumeID identity, string title, DateTime publishDate)
        : base(identity)
    {
        Title = title;
        PublishDate = publishDate;
    }
}

前 后

4

1 回答 1

4

ServiceStack 仅序列化公共属性。

于 2012-08-11T18:17:54.640 回答