首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DynamicParameters时缺少依赖项

使用DynamicParameters时缺少依赖项
EN

Stack Overflow用户
提问于 2012-02-17 01:16:42
回答 1查看 662关注 0票数 0

使用Castle.Windsor 2.5.4.32和Castle.Core 2.5.2.0。

我有一个组件,它的ctor中需要一个string[]。string[]来自一个“设置”类。我不希望组件依赖于设置类,因为它只需要string[]。因此,我使用DynamicProperties从设置类中提取数据,该数据是从容器中提取的。至少,这是我认为会发生的。Windsor无法解析我的组件,因为它说有一个缺失的依赖项( string[])。

这里有一个快速(MSTest)测试用例。这是我第一次使用DynamicParameters,所以我可能做错了什么。有什么想法吗?

代码语言:javascript
复制
namespace WindsorTests.DynamicParametersTest
{
       using Castle.MicroKernel.Registration;
       using Castle.Windsor;
       using Microsoft.VisualStudio.TestTools.UnitTesting;

       [TestClass]
       public class DPTest
       {
               [TestMethod]
               public void TestMethod1()
               {
                       var container = new WindsorContainer();
                       container.Register(
                               Component.For<ISettings>().ImplementedBy<Settings>(),
                               Component.For<Foo>().DynamicParameters((k, p) =>
                                                                       {
                                                  var settings = k.Resolve<ISettings>();
                                                  p["data"] = settings.MoreData;
                                                                       })
                               );

                       var bar = container.Resolve<Foo>();
               }
       }

       public interface ISettings
       {
               string[] MoreData { get; }
       }

       public class Settings : ISettings
       {
               public string[] MoreData
               {
                       get { return new[] {"A", "B", "C"}; }
               }
       }

       public class Foo
       {
               public Foo(string[] data)
               {
               }
       }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-17 18:15:26

您的用法非常好。

我刚刚在Windsor 3上运行了测试用例,它通过了。所以我想这可能是2.5.x中的一个bug

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

https://stackoverflow.com/questions/9315836

复制
相关文章

相似问题

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