向 StateManager 注册自定义序列化程序的推荐方法

Recommended way to register custom serializer with StateManager

在 Service Fabric 的 pre-GA 版本中,我注册了一个自定义序列化程序,如下所示:

    protected override IReliableStateManager CreateReliableStateManager()
    {
        IReliableStateManager result = new ReliableStateManager(
            new ReliableStateManagerConfiguration(
                onInitializeStateSerializersEvent: InitializeStateSerializers));

        return result;
    }

    private Task InitializeStateSerializers()
    {
        StateManager.TryAddStateSerializer(new KFOBinarySerializer());
        return Task.FromResult(false);
    }

但是,CreateReliableStateManager 方法在 GA 版本中被删除了。我一直在努力让一些东西代替它工作。目前我正在打电话

StateManager.TryAddStateSerializer(new KFOBinarySerializer());

来自服务的 RunAsync 方法,似乎工作正常。

  1. 注册自定义序列化程序的推荐方法是什么?
  2. TryAddStateSerializer 已弃用。任何人都知道这是因为自定义序列化支持将消失还是仅通过其他机制得到支持?

您可以在 StatefulService 的构造函数中创建状态管理器(完整示例 here):

class MyService : StatefulService
{
   public MyService(StatefulServiceContext serviceContext) 
       : base(serviceContext, CreateReliableStateManager()) { }

    private static IReliableStateManager CreateReliableStateManager() { ... }
}

关于已弃用的 API,Microsoft 表示可以安全使用,但将来会更改。