我正在使用以下代码来初始化我的 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;
}