ioc注入接口对象,怎么得到接口的实现实例对象
回答
- 你可以将实例和接口都注册
ServiceCollection sc; sc.AddSingleton<Test>(); sc.AddSingleton<ITest>(sp=>sp.GetService<Test>()) //通过类似autofac 可以简化这部分代码.
ServiceProvider.GetService<ITest>() == ServiceProvider.GetService<Test>() //output true.
- 你知道接口的实现是谁, 直接强转
var test = ServiceProvider.GetService<ITest>() as Test