0

我的问题可能很糟糕,但这是我在伪代码中使用 Castle Windsor 所做的尝试:

Register IFoo as Foo
Register IBar as Bar

When IFoo Is Passed Into a constructor And Being Resolved to Foo:
    Resolve IBar to Bar And pass typeof(Foo) to IBar.Create() method
        [ Resolve<IBar>().Create(typeof(Foo)) ]

目标是,每当我尝试使用 IFoo 作为依赖项时,我都想将 IFoo (Foo) 的 TYPE 的实现传递给 IBar 上的一个方法——这将做一些工作来新建一个 Foo 的实例并为 Foo 补水POCO。

有任何想法吗?

4

1 回答 1

0

不完全确定你想从这个例子中做什么?我唯一能建议的是,这将是在具体类型中处理的东西(与温莎城堡无关)。所以:

Public Class Foo
{
    Public Foo(IBar bar)
    {
        bar.Create(typeof(Foo));
    }
}

编辑:您似乎在说您希望 Foo 由 Bar 构建为factory。在这种情况下,工厂与其负责创建的类型之间的耦合是可以接受的。因此,您可以将工厂 IBar 传递给任何需要 IFoo 实例的类并直接调用 create 方法。然后,如果需要,您可以切换 IBar 的工厂实现映射,为您提供所需的任何具体 IFoo。

于 2013-06-21T23:00:30.543 回答