- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在手动构造一个IServiceProvider
时遇到了麻烦,它将允许我的单元测试使用它来使用GetService<IOptions<MyOptions>>
引入共享测试配置
我创建了一些单元测试来说明我的问题,如果可以用于回答问题,则此存储库也可以是found here。
JSON
{
"Test": {
"ItemOne": "yes"
}
}
public class TestOptions
{
public string ItemOne { get; set; }
}
ConfigureWithBindMethod
和
ConfigureWithBindMethod
均失败,并且
SectionIsAvailable
通过。因此,据我所知,该部分正按预期从JSON文件中使用。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void ConfigureWithoutBindMethod()
{
var collection = new ServiceCollection();
var config = new ConfigurationBuilder()
.AddJsonFile("test.json", optional: false)
.Build();
collection.Configure<TestOptions>(config.GetSection("Test"));
var services = collection.BuildServiceProvider();
var options = services.GetService<IOptions<TestOptions>>();
Assert.IsNotNull(options);
}
[TestMethod]
public void ConfigureWithBindMethod()
{
var collection = new ServiceCollection();
var config = new ConfigurationBuilder()
.AddJsonFile("test.json", optional: false)
.Build();
collection.Configure<TestOptions>(o => config.GetSection("Test").Bind(o));
var services = collection.BuildServiceProvider();
var options = services.GetService<IOptions<TestOptions>>();
Assert.IsNotNull(options);
}
[TestMethod]
public void SectionIsAvailable()
{
var collection = new ServiceCollection();
var config = new ConfigurationBuilder()
.AddJsonFile("test.json", optional: false)
.Build();
var section = config.GetSection("Test");
Assert.IsNotNull(section);
Assert.AreEqual("yes", section["ItemOne"]);
}
}
config.GetSection("Test")
时,我得到了这个值
{Microsoft.Extensions.Configuration.ConfigurationSection}
Key: "Test"
Path: "Test"
Value: null
最佳答案
要在服务集合中使用选项,您需要添加使用选项collection.AddOptions();
所需的服务
这应该可以解决问题:
[TestMethod]
public void ConfigureWithoutBindMethod()
{
var collection = new ServiceCollection();
collection.AddOptions();
var config = new ConfigurationBuilder()
.AddJsonFile("test.json", optional: false)
.Build();
collection.Configure<TestOptions>(config.GetSection("Test"));
var services = collection.BuildServiceProvider();
var options = services.GetService<IOptions<TestOptions>>();
Assert.IsNotNull(options);
}
关于.net - 即使GetSection正在运行,ServiceCollection也会为IOptions返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019988/
我正在尝试创建一个基于 AppSettings 的自定义配置文件部分: 当我尝试通过 ConfigurationManager.GetSection("customConfiguration
这是ConfigurationSection类 using System.Configuration; namespace CampusWebStore.Config { public cla
我无法让我的 Configuration.GetSection 返回 .Value 中的数据。我想我已经实现了这个 question 中的所有建议,但仍然无法正常工作。 应用设置.json {
你好,我在 .NET Core 应用程序 中使用了一个 json 配置文件,我不明白为什么我为对象的子部分获取了 null 值: { "tt": { "aa":3,
我卡住了!这看起来真的很愚蠢,但我看不出我哪里错了。我正在创建一个 2.0 C# ASP.NET 网站。我正在尝试使用 web.config 文件中的自定义部分: DatabaseFactorySec
我正在尝试在我的应用程序中检索配置。 我已将 IConfiguration 传递给需要提取一些设置的服务类。 这个类看起来有点像这样: private IConfiguration _configur
这真让我吃惊。我正在使用 Configuration.GetSection 从 appsettings.json 读取值方法,简而言之,我的 appsettings.json 如下所示: "AppSe
这是我的 app.config 但是当我在代码中调用它时,我得到一个空值 public void
首先,让我提前为这个超长的问题道歉——感谢所有坚持到最后的人! 我有一个 C#/.NET 3.5 类库,它没有安装在 GAC 中,因为该类库是另一个程序 (ArcMap.exe) 的插件。该程序实际上
我创建了一个使用 FastScroll 的 ListView。 (见图片)当用户单击以下任何按钮(即所有轨道、艺术家、专辑)时,每次调用以下自定义 ArrayAdater ArrayAdapter a
我正在尝试学习如何使用 ConfigurationSection 类。我曾经使用 IConfigurationSectionHandler 但发布它已被折旧。所以作为一个好 child ,我正在尝试“
我有一个单元测试项目,它有自己的 app.config 文件,它是对被测试的目标项目定义的真实配置文件的模拟。这个模拟文件由单元测试代码(而不是目标项目)加载和处理,如果我只在这个测试项目中运行测试,
好的,所以...... var test = ConfigurationManager.GetSection("test"); 到目前为止一切顺利。调试器显示 test 包含一个键 fo
客观的 使用 Moq 和 XUnit 创建一个模拟对象,用于加载特定部分“字符/技能”以增强单元测试的覆盖率。 SUT(在某些时候)以这种方式加载设置 var skills = Configurati
我正在编写一个类库,它在其 app.config 中有设置,最终将被少数其他 .NET 应用程序调用。为了从中获取设置,我正在使用 ConfigurationManager.GetSection,如下
每次调用 Configuration.GetSection 时,返回对象的 Value 属性始终为 null。 我的启动构造函数 public Startup(IHostingEnvironment
我的app.config文件如下: 我有以下(单独的)类来获取配置: na
本文整理了Java中org.springframework.extensions.config.xml.XMLConfigService.getSections()方法的一些代码示例,展示了XMLCo
我正在尝试使用 HostBuilder在 MsTest 中上课测试用例如下: [TestMethod] public void SomeTest()
具有复杂(对象列表)配置类型的 Azure 函数正在本地工作(在 local.settings.json 中使用该复杂类型),但无法在 Azure 中读取/创建对象列表(在 Azure 函数配置中使用
我是一名优秀的程序员,十分优秀!