6

MessagePack を使用して、インターフェイス型のプロパティを持つオブジェクトをシリアル化しようとしています。を呼び出すと、インターフェースに対してシリアライザーが定義されていないというPackメッセージがスローされます。SerializationException

コード例:

namespace ConsoleApplication1
{
  // interfaces and classes declaration

  public interface IDummyInterface { }

  public class DummyObject : IDummyInterface
  {
    public string Value { get; set; }
  }

  public class SmartObject
  {
    public string Name { get; set; }

    IDummyInterface DummyOne { get; set; }
  }

  // in main
  var mySmartObject = new SmartObject() { Name = "Yosy", DummyOne = new DummyObject() { Value = "Value"} };

  using(var stream = new MemoryStream())
  {
    var serializer = MessagePackSerializer.Create<SmartObject>();
    serializer.Pack(mySmartObject, stream); // => This code throws the exception
  }
}

IDummyInterface に使用するシリアライザーを MessagePack に指示し、DummyObject として機能するように指示できますか?

4

1 に答える 1