- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 appsettings.json
读取连接字符串,我正在使用:
services.AddSingleton(Configuration);
启动时的这一行抛出空值。我是 core2.0 的新手。有人可以告诉我缺少什么吗?
我的创业公司:
public class Startup
{
public static string ConnectionString { get; private set; }
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton(Configuration);
services.AddSingleton<IConfiguration>(Configuration);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
}
我的 Controller :
public class CreateController : Controller
{
public IConfiguration _ConnectionString;
public CreateController(IConfiguration configuration)
{
_ConnectionString = configuration;
}
public IEnumerable<string> Get()
{
Markets();
}
public string Markets()
{
using(SqlConnection con = new SqlConnection(_ConnectionString.GetSection("Data").GetSection("ConnectionString").Value))
{
return con.Database;
}
}
}
最佳答案
我注意到你的 Startup
缺少构造函数。在 ASP.NET Core 2 中,当它调用启动时(基于普通 WebHost.CreateDefaultBuilder(args).UseStartup<Startup>()
中的典型 Program.BuildWebHost
)会自动将配置传递到 Startup 构造函数中:
public class Startup
{
public IConfiguration Configuration { get; }
// This configuration is automatic, if WebHost.CreateDefaultBuilder(args) is used in Program.cs
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
只需添加即可解决您的 IConfiguration is null 问题。
现在,您不必将该配置添加到 DI 中,因为默认情况下它应该已经在那里,您可以按原样将其添加到您的 Controller 构造函数中。但是,这样做没有坏处。
最后,加入合唱团,直接在 Controller 中使用 IConfiguration 不是一个好主意。而是查看强类型配置设置。那里有可以提供帮助的教程 - 这里是 the first link我发现了 - 但要点是你的 Controller 最终会看起来像这样:
public class CreateController : Controller
{
public ConnectionStrings _ConnectionStrings;
public CreateController(IOptions<ConnectionStrings> connectionStrings)
{
_ConnectionStrings = connectionStrings.Value;
...
关于asp.net-core - IConfiguration 对象为空。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659671/
我有一个 API,我正在尝试使用 XUnit 对其进行一些集成测试。这是我的 API Controller 构造函数: public class MyController : Controller {
我试图模拟顶级(不是任何部分的一部分)配置值(.NET Core 的 IConfiguration),但徒劳无功。例如,这些都不起作用(使用 NSubstitute,但它与 Moq 或我相信的任何模拟
我想问一下如何创建 ASP.NET Core 配置的实例,这与我在知道 appsettings.json 的 Controller 构造函数中需要它时创建的实例相同。文件 喜欢 _config = A
我正在尝试从 appsettings.json 读取连接字符串,我正在使用: services.AddSingleton(Configuration); 启动时的这一行抛出空值。我是 core2.0
我可能已经盯着这个很久了,但是最近几天我已经跳入了用于 asp.net 的 MVC6,虽然我真的很喜欢这个,但我似乎找不到一种方便的方式来访问它之后的配置在 Start.cs 中定义为 Configu
我正在尝试在我的应用程序中检索配置。 我已将 IConfiguration 传递给需要提取一些设置的服务类。 这个类看起来有点像这样: private IConfiguration _configur
我正在为 ServiceCollection 编写自己的扩展方法来注册我的模块的类型,并且我需要从集合中访问 IConfiguration 实例来注册我的选项。 扩展方法 public static
以下内容仅供引用。 我有一个包含以下内容的 secrets.json: { "Message": "I still know what you did last summer." } 我需要使
我正在制作 fixture到我的tests . 在我的 FixtureFactory我自己做 ServiceCollection : private static ServiceCollect
我一直在尝试解决这个问题,但什么也想不起来了...... 使用 token 的 Web 应用程序,但有些事情让我退缩。 var key = new SymmetricSecurityKey(Encod
通过项目移动类(class)后,IConfiguration 之一方法,GetValue , 停止工作。用法是这样的: using Newtonsoft.Json; using System; usi
我正在使用 C# 和 Core .NET 构建类库。我正在尝试使用 config.json 文件中的配置。以下是该文件的内容: config.json { "emailAddress":"some
出于某种原因,我们无法在启动时从 Azure KeyVault 检索 secret 值。虽然 secret 似乎可以通过 IConfiguration 接口(interface)在过程中使用的方法中获
我们可以像这样将 IConfiguration 注入(inject)到类中: //Controller AppSettings obj = new AppSettings(_configuration
出于某种原因,我们无法在启动时从 Azure KeyVault 检索 secret 值。虽然 secret 似乎可以通过 IConfiguration 接口(interface)在过程中使用的方法中获
.NET Core 配置允许使用很多选项来添加值(环境变量、json 文件、命令行参数)。 我只是无法弄清楚并找到如何通过代码填充它的答案。 我正在为配置的扩展方法编写单元测试,我认为通过代码将其填充
我有一个非常简单的方法需要进行单元测试。 public static class ValidationExtensions { public static T GetValid(this IC
我正在使用 asp.net + Autofac。 我正在尝试加载一个自定义 JSON 配置文件,并基于该文件创建/实例化一个 IConfiguration 实例,或者至少将我的文件包含到默认情况下 a
我通常会做以下事情 static void Main() { IConfiguration config = new ConfigurationBuilder()
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilde
我是一名优秀的程序员,十分优秀!