這樣的事情呢?
public class DependencyViewEngine : RazorViewEngine
{
public override ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache)
{
var result = base.FindPartialView(controllerContext, partialViewName, useCache);
result.ViewEngine = // resolve view engine
return result;
}
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
var result = base.FindView(controllerContext, viewName, masterName, useCache);
result.ViewEngine = // resolve view engine
return result;
}
}
然後
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new DependencyViewEngine());
編輯:
如何實現依賴解析器使用你的容器?
public class CustomDependencyResolver : IDependencyResolver
{
public CustomDependencyResolver(IContainer container)
{
// ...
}
public object GetService(Type serviceType)
{
// pass resolution off to your container
}
public IEnumerable<object> GetServices(Type serviceType)
{
// pass resolution off to your container
}
}
然後
等等,我仍然需要手動解決這個問題,對嗎? – shenku
@shenku以另一種可能性更新了我的答案 –