使用.NET Core进行框架net46的AKKA.NET配置

时间:2016-08-25 11:00:57

标签: .net-core akka.net

我有点困惑如何在.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>

我仍然很想知道建议的做法是什么。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

更新:Akka.NET从Akka.NET v1.3.0开始支持.NET Standard 1.6,该版本于2017年8月发布。

请参阅此处的完整发行说明:https://github.com/akkadotnet/akka.net/releases/tag/v1.3.0

答案 2 :(得分:0)

我真的很难找到一个完整的答案。 但是,我现在有一个可行的解决方案,希望与大家分享。

我想要一些看起来像配置文件(所以是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);