首页 > 解决方案 > 如何在 ASP.NET Core v2 中传递字符串以及注入的依赖项

问题描述

我的 ASP.NET Core v2 项目的 Startup.cs 类中有以下方法。我的问题是如何设置一个类/服务,其中一个字符串值被传递给一个类,以及一个注入的依赖项。

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        // Add custom services.
        services.AddSingleton<IMyAssistantClass, MyAssistantClass);
        services.AddSingleton<MyClassManager>(s => new  MyClassManager("connectionString", /* How to inject IMyAssistantClass? */);

        // Other setup....
    }

标签: asp.netasp.net-coredependency-injection.net-core

解决方案


public void ConfigureServices(IServiceCollection services)
{
  services.AddSingleton<IMyAssistantClass, MyAssistantClass);
  services.AddSingleton<MyClassManager>(s => 
    {
      var imy = (IMyAssistantClass) s.GetService(typeof(IMyAssistantClass))
      new  MyClassManager("connectionString", imy);
    }
  );
}

// 让它更方便的好方法是添加扩展方法IServiceCollection,比如

public static T Resolve<T>(this IServiceProvider serviceProvider)
{
    return (T) serviceProvider.GetService(typeof(T));
}

然后你可以打电话s.Resolve<IMyAssistantClass>();


推荐阅读