Autofac 访问.NET MAUI 中的 IoC 容器

问题描述 投票:0回答:1

所以我想为我能够做到的 .NET MAUI 项目配置 Autofac,现在的问题是我想访问 IoC 容器,这样我就可以在需要设置导航服务和其他此类情况时手动解决依赖关系.

在我的

MauiProgram
我有这个:

builder.ConfigureContainer(new AutofacServiceProviderFactory(), RegisterServices);

以及注册:

private static void RegisterServices(ContainerBuilder builder)
{
   // I register my services here
}

现在我如何访问我刚刚在这里构建的

IContainer
,我一直在尝试浏览文档和内容,似乎没有直接的方法可以做到这一点。

如有任何建议,我们将不胜感激!

c# .net xamarin maui autofac
1个回答
0
投票

将 IContainer 注入到您的服务中怎么样?像这样:

public class MyService
{
    public IContainer Container { get; set; }

    public void SomeMethod()
    {
        var dependency = Container.Resolve<IDependency>();
    }
}

或者作为替代注入 ILifetimeScope :

public class MyService
{
  private readonly ILifetimeScope _scope;

  public PaymentHandler(ILifetimeScope scope)
  {
    _scope = scope;
    
    using(var childScope = _scope.BeginLifetimeScope)
    { 
        // Resolve your dependency
    }
  }
}

致以诚挚的问候

约尔格

© www.soinside.com 2019 - 2024. All rights reserved.