第一步:使用program.cs
中的默认设置,因为它已经添加了配置:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
第二步:为您的类创建一个接口,并通过创建Iconfiguration
字段并使用依赖项注入来传递配置:
private readonly IConfiguration Configuration
然后通过构造函数传递它:
public Test(IConfiguration configuration)
{
Configuration = configuration;
}
为了正确使用依赖注入(Dependency Injection)
,请创建一个适用于您的类的接口。这样就可以创建该类的实例而无需传递IConfiguration
。
以下是类和接口:
using Microsoft.Extensions.Configuration;
namespace GetUserIdAsyncNullExample
{
public interface ITest { void Method(); }
public class Test : ITest
{
public Test(IConfiguration configuration)
{
Configuration = configuration;
}
private readonly IConfiguration Configuration;
public void Method()
{
string here = Configuration["placeto:login"];
}
}
}
第三步:然后在您的startup.cs中通过调用以下内容为您的类实现依赖注入:
services.AddSingleton< ITest, Test>()
在你的ConfigureServices
方法中,现在你可以将你的类实例传递给任何由依赖注入使用的类。
例如,如果你有一个ExampleController
想要在其中使用你的类,请按照以下步骤操作:
private readonly ITest _test;
public ExampleController(ITest test)
{
_test = test;
}
现在您有一个_test实例,可以在控制器的任何位置访问它。
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
读取web.config,在.Net Core中等效的是 @CodeNotFound。 - Jhon Diazappsettings.json
。在那个例子里,用的是LocalMailService
,但其实可以是任何你想要的东西。 - anserk