控制器代码:
namespace WebApi.Controllers
{
public class HomeController : Controller
{
private DataBllTest Service = new DataBllTest();
public ActionResult Index()
{
return View();
}
}
}
BLL 代码:
namespace Bll
{
public class DataBllTest
{
public DataTable GetUser()
{
DataTest dal = new DataTest();
return dal.GetUser();
}
public DataTable GetUserList() {
DataTest dal = new DataTest();
return dal.GetUser();
}
}
}
反射代码:
Type ty1 = typeof(WebApi.Controllers.HomeController);
ConstructorInfo tbci = ty1.GetConstructor(Type.EmptyTypes);
object testb = tbci.Invoke(new object[0]);
Type ta = typeof(Bll.DataBllTest);
ConstructorInfo taci = ta.GetConstructor(Type.EmptyTypes);
object testa = taci.Invoke(new object[0]);
FieldInfo tbfi = ty1.GetField("Service", BindingFlags.NonPublic | BindingFlags.Instance);
tbfi.SetValue(testb, testa);
问题:
程序开始运行的时候 执行反射代码 现在Service 字段实例化了对象。
但是当程序运行到 HomeController Service 字段是null
我想要的是 Service 经过反射实例化对象 在HomeController 直接就能调用
bu不是ioc吗.干嘛自己弄这些事儿直接用ioc容器注册到mvc框架里就好了
项目中要用类似的一个东西,自己不太明白