【问题标题】:How to populate settings with Unity?如何使用 Unity 填充设置?
【发布时间】:2012-02-17 09:14:16
【问题描述】:

我在 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 做类似的事情吗?如果有,怎么做?

【问题讨论】:

  • Unity3D 游戏引擎还是Ubuntu Unity?我猜是前者
  • 微软 IoC 中的 Unity unity.codeplex.com

标签: c# web-config unity-container ioc-container structuremap


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 1970-01-01
    • 2017-01-11
    • 2013-04-28
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多