首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用json的国际奥委会统一配置

使用json的国际奥委会统一配置
EN

Stack Overflow用户
提问于 2021-12-30 04:17:42
回答 1查看 281关注 0票数 1

在app.config中,它可以如下所示,服务和存储库是在不同的Unity.config文件中定义的。我的问题是,下面是否可以用appsettings.json代替app.config和Unity.json来代替Unity.config?

app.config

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="Unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" requirePermission="false" restartOnExternalChanges="true" />
    </configSections>
    <Unity configSource="Config\Unity.config"/>
    <appSettings>
        <add key="DateFormat" value="yyyyMMdd"/>
    </appSettings>
</configuration>

Unity.config

代码语言:javascript
复制
<Unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <alias alias="IHelpfulRepository" type="Repositories.IHelpfulRepository, Repositories" />
    <alias alias="HelpfulRepository" type="Repositories.Implementation.HelpfulRepository, Repositories" />
</Unity>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-02 07:09:27

不不可能。这附近有一项工作。

因此,我必须做的是创建自己的UnityContainerExtensions类,加载一个看起来像app.config文件的xml文件,获取统一部分,并将其转换为UnityConfigurationSection。代码如下

MyUnityContainerExtensions.cs

代码语言:javascript
复制
public static class MyUnityContainerExtensions
{
    public static IUnityContainer LoadXML(this IUnityContainer container, string xmlFilePath = ".\\Config\\Unity.config")
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(xmlFilePath);
        var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = xmlFilePath };
        Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
        UnityConfigurationSection section = (UnityConfigurationSection)configuration.GetSection("unity");
        return section.Configure(container, string.Empty);
    }
}

Unity.config

代码语言:javascript
复制
<configuration>
    <configSections>
        <section name="Unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration" requirePermission="false" restartOnExternalChanges="true" />
    </configSections>
    <Unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
        <alias alias="IHelpfulRepository" type="Repositories.IHelpfulRepository, Repositories" />
        <alias alias="HelpfulRepository" type="Repositories.Implementation.HelpfulRepository, Repositories" />
    </Unity>
    ...
</configuration>

然后,在加载统一配置的地方,只需调用新的扩展方法。

代码语言:javascript
复制
IUnityContainer container = new UnityContainer().LoadXML();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70527427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档