我目前正在用C#实现一个库。我的主类叫做Foo
。它实现了接口IFoo
。我正在使用微软的依赖注入库来注入这个和其他依赖。我的想法是将以下代码添加到我的服务提供者类中:
public static IFoo GetFoo()
{
return ServiceProvider.GetService<IFoo>();
}
因此,集成人员不必知道如何构建Foo
的示例并向其注入依赖项,而只知道接口。
我做了一些关于这个主题的研究,但我没有找到任何关于这个主题的标准或最佳实践。
所以我的问题是,是否有任何标准或最佳实践,我的解决方案是否有任何缺点?
谢谢大家!
1条答案
按热度按时间wooyq4lh1#
比较常见的方法是提供一个方法,通常在
MyLyb.Extensions.DependencyInjection
这样的名称空间中(有时甚至在Microsoft.Extensions.DependencyInjection
中,尽管在这种情况下您应该有非常具体的名称),该方法可以根据用例放入不同的库中,然后公开注册:此外,此方法还可以公开为库-
public static IServiceCollection AddMyLib(this IServiceCollection services, Action<MyLibOptions> setOptions = null)
设置选项的操作例如-AutoMapper与ASP.NET核心的集成。