【问题标题】:StructureMap cannot find GenericRepositoryStructureMap 找不到 GenericRepository
【发布时间】:2011-05-21 07:02:12
【问题描述】:

在 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 类型或命名空间名称 找不到“通用存储库” (您是否缺少 using 指令或 程序集参考?)

还附上一张显示此特定项目布局的图片

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

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

【问题讨论】:

  • 您的屏幕截图中的红色勾号表示未保存的项目更改 - 这是否会导致您的问题?
  • 我也这么认为,但保存更改后也会发生同样的情况
  • 你有没有像往常一样“清理解决方案并重建”和“退出 Visual Studio,(可选)重新启动你的机器,因为你永远不知道这个该死的东西,清理解决方案,重建”?跨度>
  • 另外,对 StructureMap 了解不多,但 thisthis 有帮助吗?
  • 是的,我进行了正常的清理和重建,并注意到已经解决了这个问题。我会浏览你提供的那些链接。

标签: asp.net-mvc-2 structuremap


【解决方案1】:

感谢您发送文件 :-)

GodsCreationTaxidermy.Data 的定义好像变了。

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

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

  • GodsCreationTaxidermy.Data
  • GodsCreationTaxidermy.Data.Repository

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

  • GodsCreation动物标本剥制术
  • GodsCreationTaxidermy.Data

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

希望这将使 GenericRepository 正常工作:-)

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

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

GodsCreationTaxidermyEntities 似乎不再存在于 GodsCreationTaxidermy.Data 中。这会给您带来问题吗?

【讨论】:

    【解决方案2】:

    试试这个:

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

    可能在 GenericRepository 之后删除 。是否已将 GodsCreationTaxidermy.Data 添加到 MVC 站点作为参考?

    【讨论】:

    • 感谢您的尝试,但我也已经尝试过这种方式(这很有意义,听起来应该可以,但它没有)至于删除 的那些有在那里,因为存储库的签名是 GenericReposity
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多