值类型的依赖注入

时间:2018-01-19 18:24:11

标签: c# azure dependency-injection microservices azure-service-fabric

我正在创建一个Azure Service Fabric服务,并依靠本机.NET框架通过构造函数注入依赖项。问题是:其中一个构造函数将参数作为值类型(特别是System.TimeSpan)。我应该如何/可以使用依赖注入框架注册这种类型?

澄清:我正在尝试按照此处显示的示例:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection#service-lifetimes-and-registration-options

1 个答案:

答案 0 :(得分:3)

如果可能,请考虑添加类似IDurationProvider的接口,该接口具有类型TimeSpan的属性,并注册实现它的类型。这澄清了开发人员和使用意图。

如果你确定你真的需要这个,这将有效:

 services.AddTransient(typeof(TimeSpan), _=> TimeSpan.FromSeconds(1D));
 var serviceProvider = services.BuildServiceProvider();
 var timespan = (TimeSpan)serviceProvider.GetRequiredService(typeof(TimeSpan));