2

次のコードを使用して、SM コンテナーを初期化しています。以下のコードは正常に動作します。しかし、CultureInfo インスタンスを作成するときに、別のカルチャ名を渡す必要があるという要件があります。つまり、実行時に GetCultureName() メソッドに入力を渡したいのです。これは SM の有効な使用法ですか、それともコード内で適切なカルチャー名を使用して 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;
    }
4

0 に答える 0