首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建查看属性/参数属性的ISubDependencyResolver

创建查看属性/参数属性的ISubDependencyResolver
EN

Stack Overflow用户
提问于 2010-07-06 02:29:25
回答 1查看 417关注 0票数 1

我使用Castle Windsor作为更专业框架的一部分。弹出的需求之一是能够在基于服务上指定的属性解析服务时选择要使用的实现。

例如,假设:

代码语言:javascript
复制
public class MyService
{
   public MyService([Selector("Bar")]SomeDependency foo){......}
}

然后,我希望在ISubDependencyResolver中获取SelectorAttribute,获取它的值,并相应地进行解析。

我们已经这样做了,但是使用类型本身的属性(假设是SomeDependency定义上的属性)。这很容易,因为你有一个类型的引用。然而,我在寻找如何获取当前正在解析的参数/属性的引用时遇到了问题,这将使我能够获取该属性。

有人愿意分享一些见解吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-06 04:47:22

这实际上是一个内联定义的服务覆盖,因此我会将其视为内联服务覆盖。我将使用组件模型贡献器(IContributeComponentModelConstruction),而不是尝试在ISubDependencyResolver中实现它。

问题是,要做到这一点,除了用你自己的ConstructorDependenciesModelInspector替换默认的SelectorAttribute之外,我看不到任何其他的方法(它将非常类似,但它也会读取这个SelectorAttribute,当找到它时,它会创建一个带有DependencyType.ServiceOverrideDependencyModel

要替换ConstructorDependenciesModelInspector,请使用container.Kernel.ComponentModelBuilder

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3181493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档