C# 使用DI()扩展从ACtorSystem创建actorRefs时,引发对象引用异常
我正在尝试设置一个基本项目,该项目将使用Autofac进行依赖项注入 在尝试获取我的演员执行以下操作的实例时,我遇到以下问题:C# 使用DI()扩展从ACtorSystem创建actorRefs时,引发对象引用异常,c#,.net,autofac,akka.net,C#,.net,Autofac,Akka.net,我正在尝试设置一个基本项目,该项目将使用Autofac进行依赖项注入 在尝试获取我的演员执行以下操作的实例时,我遇到以下问题: _system = Akka.Actor.ActorSystem.Create(_settings.SystemName); PingActor = _system.ActorOf(_system.DI().Props<PingActor>(), ActorNames.PingActor); 我尝试注册我的演员的地方: public class IoCMo
_system = Akka.Actor.ActorSystem.Create(_settings.SystemName);
PingActor = _system.ActorOf(_system.DI().Props<PingActor>(), ActorNames.PingActor);
我尝试注册我的演员的地方:
public class IoCModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<ActorSystemShell>().As<IActorSystemShell>();
builder.RegisterType<PingActor>();
}
}
公共类IOC模块:模块
{
受保护的覆盖无效负载(ContainerBuilder builder)
{
builder.RegisterType().As();
RegisterType();
}
}
为什么要将我的Actor设置为Null?我缺少AutoFacDependencyResolver 我修改了代码,如下所示:
public void Start()
{
_system = Akka.Actor.ActorSystem.Create(_settings.SystemName);
// Create the dependency resolver
IDependencyResolver resolver = new AutoFacDependencyResolver(IoC.Container, _system);
PingActor = _system.ActorOf(_system.DI().Props<PingActor>(), ActorNames.PingActor);
Console.WriteLine($"Starting actor system: {_settings.SystemName}");
}
public void Start()
{
_system=Akka.Actor.ActorSystem.Create(_settings.SystemName);
//创建依赖项解析器
IDependencyResolver解析器=新的AutoFacDependencyResolver(IoC.Container,_系统);
PingActor=\u system.ActorOf(\u system.DI().Props(),ActorNames.PingActor);
WriteLine($“启动参与者系统:{u settings.SystemName}”);
}
public class IoCModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<ActorSystemShell>().As<IActorSystemShell>();
builder.RegisterType<PingActor>();
}
}
public void Start()
{
_system = Akka.Actor.ActorSystem.Create(_settings.SystemName);
// Create the dependency resolver
IDependencyResolver resolver = new AutoFacDependencyResolver(IoC.Container, _system);
PingActor = _system.ActorOf(_system.DI().Props<PingActor>(), ActorNames.PingActor);
Console.WriteLine($"Starting actor system: {_settings.SystemName}");
}