‘ServiceCollection’不包含’AddSingleton’的定义
我一直在通过程序类将我的依赖项注册到我的IOC容器,但它变得很乱。 我决定编写一个DI提供程序,它提供并注册了它内部的依赖项。
在我开始解释代码之前,这是VS给出的完整编译错误。
‘ServiceCollection’不包含’AddSingleton’的定义无法解析符号’AddSingleton’
我试图尽可能干净,在DependencyProvider
包含ServiceCollection类
public class DependencyProvider : ServiceCollection, IDependencyProvider { public DependencyProvider() : base() { Register(); } public void Register() { base.AddSingleton(); // this line errors new ServiceCollection().AddSingleton(); // this line works } }
这是IDependencyProvider接口
public interface IDependencyProvider : IServiceCollection { void Register(); }
我可以不这样做,还是我只是做错了什么? 我真的希望它可能,因为解决方案看起来非常干净,请创建一个新的ServiceCollection实例并使用该字段。
只是为了澄清错误,我无法访问ServiceCollection
上的任何基本方法,就像这样
base.AddSingleton();
但是这条线在内联新实例时起作用
new ServiceCollection().AddSingleton();
base
关键字不解析扩展方法。 你想要做的是:
this.AddSingleton();