0

我在让结构映射与 asp.net mvc 4 一起正常工作时遇到了很多麻烦。现在,我知道它确实可以工作(我以前可以工作,但我无法再访问那个特定的代码库了)。我有一个用于此解决方案的库,其中包含一堆存储库类,并且当前还有一些用于设置存储库和其他一些东西的 Structuremap Registry 类。现在,在 Web 端,我可以很好地初始化该部分,并且我已经证明它可以通过在我的一个控制器类中调用 ObjectFactory.GetInstance 来工作。我能够获取用户列表。

但是,我需要构造函数注入才能为控制器工作。我安装了 structuremap mvc 4 包,我注意到它在 App_Start 和其他一些地方放了一些东西。Global.asax 中没有放置任何内容。是否应该为 MVC 设置容器?还是我在这里错过了其他一些微妙的步骤?

4

1 回答 1

0

经过一些麻烦,我解决了。我之前有一个名为 Bootstrapper 的对象,它完成了所有 IOC 设置。所以我不得不将 StructureMapMvc.cs 修改为以下内容(基本上是告诉它使用现有的容器):

public static class StructuremapMvc {
    public static void Start()
    {
        Bootstrapper.Bootstrap();
        var container = ObjectFactory.Container;
        DependencyResolver.SetResolver(new StructureMapDependencyResolver(ObjectFactory.Container));
        GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container);
    }
于 2013-07-22T00:28:16.347 回答