在浏览ASP.NET Core配置的官方文档时,我们可以找到以下示例。这在其他样品中也占主导地位。
public class MyOptions
{
public MyOptions()
{
// Set default value.
Option1 = "value1_from_ctor";
}
public string Option1 { get; set; }
public int Option2 { get; set; } = 5;
}
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
我正在浏览ASP.NET Core Caching repo,并注意到微软团队的工作方式略有不同。
public class MemoryCacheOptions : IOptions<MemoryCacheOptions>
{
// removed stuff
MemoryCacheOptions IOptions<MemoryCacheOptions>.Value
{
get { return this; }
}
}
实施IOptions&lt;&gt ;?有什么好处?它给我们带来了什么样的“魔力”?
答案 0 :(得分:0)
不,没有必要实现该接口。据我所知,它没有提供任何价值。该类中的大多数代码都相当陈旧(2 - 3年),因此它可能只是早期选项实现中的剩余部分。事实上,我猜它可以安全地移除。
答案 1 :(得分:0)
在ASP.NET Core github上发布了问题并得到了其中一个开发人员的回答。通过实施IOptions&lt;&gt;,您可以更轻松地在单元测试中使用它,而无需使用Options基础结构。