【问题标题】:Castle Windsor dependency injection to propertiesCastle Windsor 对属性的依赖注入
【发布时间】:2023-03-10 17:07:01
【问题描述】:

我正在尝试向 Castle Windsor 添加一些东西(我不知道那是什么东西),当我尝试创建派生自 System.Activities.Activity 的类的实例时,它将检测到,Windsor 将检查属性类型为 InArgument<T> 并在将创建的实例返回给被调用者之前解析这些参数的值。

这样做的步骤是什么?

基本上,我会有这样的东西:

var someActivity = container.Resolve<SomeActivity>();

然后 Windsor 会检测到 SomeActivity 派生自 Activity,它会检查 SomeActivity 上类型为 InArgument&lt;T&gt; 的属性,并从容器本身解析这些属性的值。

SomeActivity 可以是任何Activity,不一定特别是SomeActivity

【问题讨论】:

    标签: castle-windsor


    【解决方案1】:

    Windsor 默认设置它可以解析的所有属性。

    【讨论】:

    • 我猜问题是 OP 已注册 T 但未注册 InArgument&lt;T&gt; 并希望 Windsor 为 InArgument&lt;T&gt; 类型的属性解析 T。否则,由于您给出的原因,这个问题太无趣了。
    • 你为什么要通过添加另一层间接来使事情复杂化?
    • 嗯,我没有把任何事情复杂化。我只是想猜测 OP 真正要问的是什么。
    • 哦,我明白你的意思了。 InArgument&lt;T&gt; 是 Windows 工作流的一部分。它用于表示流入工作流的数据。
    • 哦,对了,我明白了。我想你可以在容器中使用 InArgument 类型,或者使用ISubDependencyResolver 来提供值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多