【问题标题】:StructureMap injection questionStructureMap 注入问题
【发布时间】:2009-02-24 18:21:35
【问题描述】:

我正在尝试使用 StructureMap 并且基本上具有 3 个抽象级别。我有一个服务库和数据库接口。所以 IService 依赖于 IRepo 而 IRepo 依赖于 IDatabase。我的问题是我的 IDatabase 具体类型接受了数据库连接信息。我将动态创建这些,尝试使用 ObjectFactory.Configure()。

所以我有一个用户,并且该用户链接到一家公司,我查找公司连接信息,我想根据这些信息创建正确的 IDatabase 具体类型。我在启动代码中配置了具体类型。我只想从外部使用 IService 对象...所以我想创建一个以公司名称命名的命名 IService 对象。尝试动态创建这些类型时遇到问题。任何信息都会有所帮助...

我基本上希望能够在不知道具体类型的情况下创建命名实例并在运行时设置属性或将特定参数传递给构造函数。我在配置文件中有具体的类型设置。我尝试使用 ObjectFactory.GetInstance 并尝试在 Configure 方法中设置属性,但得到了 StackOverflow 异常...HOW IRONIC

【问题讨论】:

    标签: c# .net dependency-injection structuremap


    【解决方案1】:

    在 Jeremy Miller(StructureMap 的作者)的指导下找到了答案。这是他指给我的地方:

    http://structuremap.sourceforge.net/RetrievingServices.htm#section5

    这是我使用的一个例子:

    IDatabaseRepository repo =
                    ObjectFactory.With("server").EqualTo("servername").
                    With("database").EqualTo("dbName").
                    With("user").EqualTo("userName").
                    With("password").EqualTo("password").
                    GetInstance<IDatabaseRepository>();
    

    【讨论】:

      【解决方案2】:

      Structuremap 的 ObjectFactory 似乎不支持注入命名实例

      【讨论】:

        猜你喜欢
        • 2023-03-17
        • 1970-01-01
        • 2011-06-07
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        相关资源
        最近更新 更多