Как заполнить настройки Unity? - PullRequest
1 голос
/ 17 февраля 2012

У меня есть следующие значения ключей appSettings в файле web.config:

<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)
            );

Можно ли сделать что-то подобное с Unity без необходимости вносить изменения в файл web.config?Если да, то как?

1 Ответ

1 голос
/ 17 февраля 2012

Короче говоря: Unity не имеет такой функции.Но проект TecX на codeplex содержит некоторые улучшения для Unity, которые позволяют вам делать то же самое.

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