如何使用Unity填充设置

本文关键字:设置 填充 Unity 何使用 | 更新日期: 2023-09-27 18:25:07

我在web.config文件中有以下appSettings键值:

<add key="SomeSettings.Received" value="Mottatt"/>    
<add key="SomeSettings.Processing" value="Under behandling"/>
<add key="SomeSettings.Finished" value="Ferdig behandlet"/>

我有以下课程:

public class SomeSettings : IConfigurationSettings
{
    public string Received { get; set; }
    public string Processing { get; set; }
    public string Finished { get; set; }
}

在StructureMap中,以下内容将填充SomeSettings类:

ForConcreteType<SomeSettings>().Configure
            .EnrichWith(
                (session, original) =>
                session.GetInstance<ISettingsProvider>().PopulateSettings(original)
            );

我可以在不必更改web.config文件的情况下对Unity执行类似的操作吗?如果是,如何?

如何使用Unity填充设置

简而言之:Unity没有这样的功能。但是codeplex上的TecX项目包含了Unity的一些增强功能,允许您做同样的事情。

var container = new UnityContainer();
container.AddNewExtension<EnrichmentExtension>();
container.RegisterType<SomeSettings>(new Enrichment<SomeSettings>((original, ctx) =>
  {
    ctx.NewBuildUp<ISettingsProvider>().PopulateSettings(original);
  }));