小编Max*_*Max的帖子

在Owin Startup上解析InstancePerLifetimeScope中的Autofac服务

我无法找到通过Autofac解析服务的正确方法,该方法在构造 Owin上下文时使用,并且也在请求端处理.

由于此时OwinContext仍在构建中,因此无法通过调用找到LifetimeScope HttpContext.Current.GetOwinContext().GetAutofacLifetimeScope().OwinContext还没有.

在我的代码中,IAdfsAuthorizationProvider服务直接在该服务中解析Container,但在请求之后不会被处理并且寿命更长.

我可以通过调用创建一个新的LifeTimeScope container.BeginLifetimeScope(),但现在LifeTime被分离了请求,并且可能会解析同一请求中的不同实例.并且无法在正确的时间自行处理lifeTimeScope.

    public void Configure(IAppBuilder app)
    {
         var builder = new ContainerBuilder();    
         builder.RegisterType<AdfsAuthorizationProvider>().As<IAdfsAuthorizationProvider>().InstancePerLifetimeScope();

         var container = builder.Build();

         app.UseAutofacMiddleware(container);

         // **Service that's not binding to the request lifetime.**
         var service = container.Resolve<IAdfsAuthorizationProvider>();

         app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
             {
                Provider = new AuthorizationServerProvider(service),
             });         
          }
Run Code Online (Sandbox Code Playgroud)

有没有人有建议?

c# startup inversion-of-control autofac owin

3
推荐指数
1
解决办法
1744
查看次数

Akka.NET 高效查询参与者

我正在使用 Akka.NET 为生产项目创建概念证明,但我面临查询概念理解问题。

情况如下: CoordinatorActor 有一个包含数千个Hotel-Actors.

我想查询所有Hotel-Actors在特定日期有空房的酒店。

当然,我可以通过它们 foreach 并发送.Ask<>特定日期的请求。拿着所有任务的参考并做一个Task.WhenAll(requests). 但这感觉有点不自然。

或者,我可以一次向所有酒店(ActorSelection 或路由器)发送请求特定日期的广播消息,但我不知道他们何时回复了Tell消息。

有没有人有建议如何解决这个问题?

task-parallel-library akka.net

1
推荐指数
1
解决办法
895
查看次数