新的 aspnet 具有内置依赖注入:启动类实例接收服务、控制器、视图组件。有什么方法可以让我创建我的类的对象并使用 aspnet 功能传递服务吗?就像是:
WebApplicationClassesActivator.Create(typeof(MyClass))
where MyClass
包含构造函数接收IHostingEnvironment
例如,例如。
实际使用情况:
public class MyController : Controller
{
private readonly IContext Context;
public MyController(IContext context)
{
Context = context;
}
public IActionResult Index(string className)
{
return View(WebApplicationClassesActivator.Create(Type.GetType(className)));
}
}
Where classsName
是类的名称,例如:
public class A
{
public A(IContext context, IHostingEnvironment env)
{
...
}
}
集会Microsoft.Extensions.DependencyInjection.Abstractions
包含静态类ActivatorUtilities
其中有我需要的:
public static object CreateInstance(IServiceProvider provider,
Type instanceType,
params object[] parameters);
我可以创建实例并注入服务:
private readonly IServiceProvider Provider;
public HomeController(IServiceProvider provider)
{
Provider = provider;
}
public IActionResult Index()
{
var instance = ActivatorUtilities.CreateInstance(Provider, typeof(A));
return View(instance);
}
public class A
{
public A(IContext context)
{
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)