StructureMap找不到GenericRepository

时间:2011-05-19 01:36:08

标签: asp.net-mvc-2 structuremap

在MVC 2中,我正在研究某些事情,并遇到了障碍。我得到了我的存储库,而不是将接口放在同一个类中,我有与EDMX文件相同的项目。

初始化StructureMap就是在这一点上杀了我的。这是我在初始化StructureMap的地方(在Global.asax.cs中。)

ObjectFactory.Initialize(x =>
    {
        x.ForRequestedType<IUnitOfWorkFactory>()
            .TheDefaultIsConcreteType<EFUnitOfWorkFactory>()
            .CacheBy(InstanceScope.HttpContext);

        x.ForRequestedType(typeof(IRepository<>))
            .CacheBy(InstanceScope.HttpContext)
            .TheDefaultIsConcreteType(typeof(GenericRepository<>));
    });

此项目的命名空间是GpdsCreationTaxidermy.Data(与我的GenericRepository.cs相同的命名空间)。我会发布这个文件的代码,但我不相信这是问题。在我的Global.asax中,我导入了适当的命名空间

using GodsCreationTaxidermy.Data;

我得到的错误是:

  

错误3类型或命名空间名称   找不到'GenericRepository'   (你错过了使用指令或   汇编参考?)

还附有显示此特定项目布局的图像

enter image description here

有人可以帮助解决这个问题,或者我在这里做错了什么

编辑我甚至尝试将GodsCreationTaxidermy.Data添加到文件名中,但仍然没有运气。

2 个答案:

答案 0 :(得分:1)

感谢您发送文件: - )

看起来GodsCreationTaxidermy.Data的定义已经改变。

这就是我为解决问题所做的工作:

从GodsCreationTaxidermy.Data.Repository类库中删除这些引用:

  • GodsCreationTaxidermy.Data
  • GodsCreationTaxidermy.Data.Repository

从GodsCreationTaxidermy.Data类库中删除这些引用:

  • GodsCreationTaxidermy
  • GodsCreationTaxidermy.Data

删除GodsCreationTaxidermy MVC项目中对GodsCreationTaxidermy.Data的引用并重新添加引用,从Project选项卡中选择GodsCreationTaxidermy.Data

希望这会让GenericRepository工作: - )

我注意到以下行不再有效:

EFUnitOfWorkFactory.SetObjectContext(() => new GodsCreationTaxidermyEntities());

GodsCreationTaxidermyEntities似乎不再存在于GodsCreationTaxidermy.Data中。这会导致你出现问题吗?

答案 1 :(得分:0)

试试这个:

.TheDefaultIsConcreteType(typeof(GodsCreationTaxidermy.Data.GenericRepository<>));

可能删除&lt;&gt;在GenericRepository之后。是否将GodsCreationTaxidermy.Data作为参考添加到MVC网站?