asp.net-mvc-3 – 在使用Unity容器时为此对象异常定义的无参数构造函数
我得到上述异常,而trynig加载视图. 我正在使用Unity来初始化我的控制器实例.仍然得到上述错误. 这是我的控制器. public class SiteController : Controller { private ISiteRepository _repository; public SiteController(ISiteRepository repository) { _repository = repository; } // // GET: /Site/ public ActionResult Index() { return View(); } // // GET: /Site/Details/5 public ActionResult Details(int id) { return View(); }} 这里是我的Global.asax.cs protected void Application_Start() { ConfigApi(GlobalConfiguration.Configuration); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } static void ConfigApi(HttpConfiguration config) { var unity = new UnityContainer(); unity.RegisterType<SiteController>(); unity.RegisterType<ISiteRepository,SiteRepository>(new HierarchicalLifetimeManager()); config.DependencyResolver = new IocContainer(unity); } 这是我的SiteRepository类. public class SiteRepository:ISiteRepository { private readonly SampleMVCEntities _dbContext; public SiteRepository() { _dbContext = new SampleMVCEntities(); } private IQueryable<SiteConfig> MapSiteConfig() { return _dbContext.SiteConfigs.Select(a => new SiteConfig { Name = a.Name,LinkColour = a.LinkColour,SiteLogo = a.SiteLogo,SiteBrands = a.SiteBrands.Select(b => new Models.SiteBrand { SiteId = b.SiteId,BrandId = b.BrandId }) }); } public IEnumerable<SiteConfig> GetAll() { return MapSiteConfig().AsEnumerable(); }} 这是我的错误堆栈. 没有为此对象定义的无参数构造函数.
有人可以帮我吗 谢谢. 解决方法ASP.NET MVC和ASP.NET Web API使用两个独立的依赖解析器.对于从Controller得到的“常规”MVC控制器,您需要使用DependencyResolver.SetResolver: DependencyResolver.SetResolver(new UnityDependencyResolver(container)); 对于由ApiController派生的Wep API控制器,您需要像代码中一样使用GlobalConfiguration.Configuration.DependencyResolver. 所以如果你打算使用这两种类型的控制器,你需要注册你的容器两次. 有一个很好的文章如何为依赖解析器设置Unity: Dependency Injection in ASP.NET MVC 4 and WebAPI using Unity (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – DDD原理和ASP.NET MVC项目设计
- asp.net-mvc – Asp.net 5(vnext)是否可以使用?
- .net – 什么可以解释托管堆上超过5,000,000个System.WeakR
- asp.net core标签助手的高级用法TagHelper+Form
- asp.net-mvc-3 – ASP.Net MVC 3:在哪里处理会话丢失?
- asp.net+js实现批量编码与解码的方法
- asp.net-mvc – 如何在扩展方法中使用HTML帮助器方法?
- asp.net(C#)把汉字转化成全拼音函数(全拼)
- asp.net – 在将MVC和路由添加到WebForms项目后,IIS中的默认
- 悟透JavaScript
- asp.net – Application_error函数间歇性捕获“文
- 密码由6-12位数字或字母组成,密码哈希加密
- asp.net – Orchard CMS Media中的文件大小上传限
- asp.net-mvc – jQuery脚本包含在mvc 4模板的页面
- ASP.NET Core 1.0 ConfigurationBuilder().AddJs
- asp.net+js实现批量编码与解码的方法
- asp.net-mvc – 无法更改关系,因为一个或多个外键
- asp.net-mvc-3 – 如何在Razor中为Nullable创建编
- asp.net – 如何正确过滤数据表(datatable.selec
- asp.net-core – 加密ASP.Net Core中的连接字符串