【发布时间】:2016-01-30 13:19:33
【问题描述】:
我有控制器类 ProductController.cs
namespace AmazonProductAdvertisingAPI.WebUI.Controllers
{
public class ProductController : Controller
{
private string _title = "Bible";
private IProductCollection _productCollection;
public int pageSize = 13;
public ProductController(IProductCollection productCollection)
{
_productCollection = productCollection;
}
public string Title
{
get
{
return _title;
}
set
{
_title = value;
}
}
// GET: Product
public ActionResult List(int page = 1)
{
return View(_productCollection.Products
.OrderBy(product => product.Title)
.Skip((page - 1)*pageSize)
.Take(pageSize)
);
}
}
}
类 NinjectDependencyResolver.cs
namespace AmazonProductAdvertisingAPI.WebUI.Infrastructure
{
public class NinjectDependencyResolver : IDependencyResolver
{
private IKernel kernel;
public NinjectDependencyResolver(IKernel kernelParam)
{
kernel = kernelParam;
AddBindings();
}
public object GetService(Type serviceType)
{
return kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return kernel.GetAll(serviceType);
}
private void AddBindings()
{
// Create dependency here
kernel.Bind<IProductCollection>().To<AmazonProductCollection>()
.WithConstructorArgument("title", "Bible");
}
}
}
现在在 NinjectDependencyResolver.cs 构造函数参数的方法 AddBindings() 中是硬编码的。我想读取 Title 属性并放入
private void AddBindings()
{
// Create dependency here
kernel.Bind<IProductCollection>().To<AmazonProductCollection>()
.WithConstructorArgument("title", "here_must_be_Title_field_from_ProductController");
}
我计划在用户填写搜索输入并单击“搜索”按钮时设置此字段值。
有人可以帮助并回答如何更好地做到 NinjectDependencyResolver 可以从 ProductController 中获取价值?
【问题讨论】:
标签: c# .net asp.net-mvc ninject ninject.web.mvc