首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IRepository对ISession

IRepository对ISession
EN

Stack Overflow用户
提问于 2012-04-18 09:59:31
回答 2查看 170关注 0票数 1

我有储藏室。与他们一起工作是通过一个接口IRepository实现的。

样本工程中用ISession实现了HomeController构造函数。当我写这个的时候:

代码语言:javascript
复制
public class TestingController : Controller
{
    private ISession session;

    public TestingController(ISession session)
    {
        this.session = session;
    }
//Some code here with this.session
}

效果很好。当我决定使用IRepository

代码语言:javascript
复制
public class TestingController : Controller
{
    private IRepository repository;

    public TestingController(IRepository repository)
    {
        this.repository = repository;
    }
//Some code here with this.repository
}

它在其他类WindsorControllerFactory的这种方法中不起作用

代码语言:javascript
复制
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
    {
        if (controllerType == null)
        {
            throw new HttpException(404, string.Format("The controller for path {0} culd not found!", requestContext.HttpContext.Request.Path));
        }

        return (IController)this.kernel.Resolve(controllerType);
    }

我有例外

无法创建组件'MvcApplication1.Controllers.ResultsController‘,因为它具有要满足的依赖关系。 'MvcApplication1.Controllers.ResultsController‘正在等待下列依赖项:-未注册的服务'dal.Repository.IRepository’。

如何解决这个问题?

组装dal.Repository正在工作。如果我写得到处都是new dal.Repository.Repository(),而不是this.repository,它就能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-18 10:02:52

看起来您缺少了IRepository的绑定。

您必须有实现IRepository接口的具体类,比如MyRepository。然后您应该配置温莎,以了解IRepository是关于什么的。

就像,

代码语言:javascript
复制
container.Register(Component.For<IRepository>().ImplementedBy<MyRepository>());
票数 3
EN

Stack Overflow用户

发布于 2015-08-01 00:22:05

我能够通过遵循这个文档来解决同样的问题

另一件事是,如果我们从github下载这个项目的新版本,我们将不会看到这个expcetion 链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10207073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档