结构图中的构造函数参数注入,用于运行时输入

时间:2012-09-27 04:34:48

标签: .net ioc-container structuremap

我使用以下代码来初始化我的SM容器。 abelow代码工作正常。但是现在我需要在创建CultureInfo实例时传递不同的文化名称。简而言之,我想在运行时将一些输入传递给GetCultureName()方法。这是SM的有效使用还是我应该使用适当的culturename直接在我的代码中实例化CultureInfo。

    public static IContainer Initialize()
    {
        ObjectFactory.Initialize(x =>
                    {
                        x.Scan(scan =>
                                {
                                    scan.TheCallingAssembly();
                                    scan.WithDefaultConventions();
                                });

                        x.For<ICultureInfoProvider>()
                          .Use<DummyCultureInfoProvider>();

                        x.For<IDocumentService>().Use<DummyDocumentService>()
                          .Ctor<CultureInfo>("cultureInfo")
                          .Is(i => new CultureInfo(i.GetInstance<ICultureInfoProvider>().GetCultureName()));
                    });
        return ObjectFactory.Container;
    }

0 个答案:

没有答案