azure-service-fabric - 使用 StateManager 注册自定义序列化器的推荐方法

标签 azure-service-fabric

在 Service Fabric 的预 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,微软表示可以安全使用,但将来会发生变化。

关于azure-service-fabric - 使用 StateManager 注册自定义序列化器的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784086/

相关文章:

azure-service-fabric - 删除 Service Fabric 应用程序失败

c# - Azure Service Fabric 持续集成在 Visual Studio Team Services 中失败(以前是 VSO)

azure - CPU 上的服务结构自动平衡

powershell - Add-AzureRmServiceFabricClusterCertificate 以错误 'Certificates cannot be added and removed at the same time.' 结束

c# - 如何将 Application Insights 集成到 Service Fabric 中?

azure-service-fabric - 服务 : use IsCancellationRequested or throw exception 中 RunAsync 方法的 while 循环中什么是首选

c# - 生成的 AAD CallbackUrl 是 IP 地址,与部署到服务结构时应用程序注册中的回复 Url 不匹配

azure - 部署 Service Fabric 应用程序时出错 - 无法索引到空数组

azure - Service Fabric 中每个服务的应用程序

azure-service-fabric - Connect-ServiceFabricCluster : Argument 'Connect-ServiceFabricCluster' is not recognized as a cmdlet: Unable to load DLL 'FabricCommon.dll'