【问题标题】:AKKA.NET configuration using .NET Core for framework net46使用 .NET Core 框架 net46 的 AKKA.NET 配置
【发布时间】:2016-08-25 11:00:57
【问题描述】:

我对如何在 .NET Core 应用程序中配置 AKKA.NET 感到有些困惑,其中 App.config 已被 project.json 替换。

AKKA.NET 还会寻找 App.Config 吗?或者我应该以某种方式将 HOCON 配置放在 project.json 中?

推荐的做法是什么?

编辑:更多的试验和错误已验证可以将 App.config 文件添加到 .NET Core 项目并包含如下所示的 hocon 部分:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="akka" type="Akka.Configuration.Hocon.AkkaConfigurationSection, Akka" />
  </configSections>
  <akka>
    <hocon>
    <![CDATA[
        akka {
                actor {
                    serializers {
                      wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
                    }
                        serialization-bindings {
                        "System.Object" = wire
                        }
                    }
                }
    ]]>
    </hocon>
  </akka>
</configuration>

我仍然想知道推荐的做法是什么。

【问题讨论】:

    标签: .net-core akka.net


    【解决方案1】:

    据我所知,目前没有推荐的做法。 Akka .NET 将在 .NET Core 开始至少有点像稳定的东西时宣布支持 .NET Core 的计划。 Aaron Stannard 早在 5 月就写了一封 blog post,解释了为什么当 .NET Core 团队无法正确设定期望时,他承诺支持 .NET Core 的最后期限是没有意义的。我不知道从那以后情况是否发生了变化。

    【讨论】:

    • 谢谢,我会坚持上面的解决方案。它工作正常。
    【解决方案2】:

    更新:Akka.NET 从 2017 年 8 月发布的 Akka.NET v1.3.0 开始支持 .NET Standard 1.6。

    在此处查看完整的发行说明:https://github.com/akkadotnet/akka.net/releases/tag/v1.3.0

    【讨论】:

    • 但是那里没有关于配置的内容。
    • 是的,我们正在为新的 .NET Core 配置内容开发本机解决方案。由于 .NET Core 放弃了对 App.config 的支持,并且当时还不清楚内置解决方案,因此没有提供开箱即用的解决方案。
    • 渴望知道自那以后是否有任何变化,我正在努力寻找如何在 .net 核心控制台应用程序中设置 Hocon 的任何指导。 @Aaronontheweb
    【解决方案3】:

    我真的很难找到一个完整的答案。 不过,我现在有一个可行的解决方案并想分享。

    我想要一些看起来像配置文件(所以 xml)的东西,这也有助于 Visual Studio(尤其是 VS2019)不知道什么是 hocon 并抱怨。

    这是我的 akka-hocon.conf 文件,它位于项目根目录中。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <akka>
        <hocon>
          <![CDATA[          
              akka.persistence{
                ...
              }
          ]]>
        </hocon>
      </akka>
    </configuration>
    

    在启动时,我将从 CDATA 中提取的 hocon 传递给 ActorSystem 像这样:

    var hoconFile = XElement.Parse(File.ReadAllText(Directory.GetCurrentDirectory() + "\\akka-hocon.conf"));
    var config = ConfigurationFactory.ParseString(hoconFile.Descendants("hocon").Single().Value);
    var actorSystem = ActorSystem.Create("SomeSystemName", config);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2020-06-15
    • 1970-01-01
    • 2020-02-29
    • 2020-11-01
    • 2018-10-19
    • 1970-01-01
    相关资源
    最近更新 更多