最近学习Repository模式,此示例是比照一个现有的项目简化、修改后的,但访问Grade2/Index页面出现两个问题一直搞不定,搜索很多资料没有类似的形式。可能是依赖注入这块有问题,依赖注入在Global.asax里面。我比照现有的项目和网上一些文章,也没修改好这个问题。哪位有心情能帮我看看修复下这个问题。多谢!
错误显示:
None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'RepositoryExample.MyRepository.EfRepository`1[RepositoryExample.Models.Grade]' can be invoked with the available services and parameters:
Cannot resolve parameter 'RepositoryExample.Models.UsersContext context' of constructor 'Void .ctor(RepositoryExample.Models.UsersContext)'.
翻译:没有构造函数的发现与类型“Autofac.Core.Activators.Reflection.DefaultConstructorFinder'RepositoryExample.MyRepository.EfRepository`1[RepositoryExample.Models.Grade]'可以与现有的服务和参数调用它:
无法解析参数'RepositoryExample.Models.UsersContext语境“的建构”太虚。构造函数(RepositoryExample.Models.UsersContext)“。
项目环境:vs2012 、MVC4
项目下载 :
http://pan.baidu.com/s/1iZ6k2
有一个更好的例子: http://www.cnblogs.com/n-pei/archive/2011/09/06/2168433.html
使用了 public EfRepository(UsersContext context)
所以 builder.Register<DbContext>(o => new UsersContext()).InstancePerHttpRequest();
改为 builder.Register(o => new UsersContext()).InstancePerHttpRequest();
照楼上方法,已解决。多谢!能进行下一步学习了,非常感谢,这个点卡了好些天。
@黑峰: 此例子整理了一篇博客 在 http://www.cnblogs.com/heifengwll/p/3715197.html
@黑峰: 其他注入代码呢
@黑峰: 怎么注入到Repository 里面去
@_York: 好久了,等我再看下代码记忆下
@黑峰:
@黑峰: 你下载网盘里的项目看看
感谢感谢,解决了我的问题
InstancePerHttpRequest();
忘这个鬼东西,mvp,webApi 请求 是不是实例失败
应该是你向容器请求一个泛型的对象,然后他不能解析泛型参数,
麻烦看下代码。我找不出来问题出在哪。