我有点困惑如何在.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>
我仍然很想知道建议的做法是什么。
答案 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);