【发布时间】:2019-05-02 21:19:40
【问题描述】:
我是 .net 核心的新手。需要帮助建立统一框架。这是我尝试过的。
我添加了对 System.Configuration.ConfigurationManager .net 标准 V2.0 的引用
然后创建 app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!--In older version, Microsoft.Practices.Unity.Configuration.dll is part of older version (around 3.5.1404). In newer version,
Microsoft.Practices.Unity.Configuration.UnityConfigurationSection class is moved to Unity.Configuration.dll.-->
<!--<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>-->
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration"/>
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<!--Old syntax-->
<!--<typeAliases>
<typeAlias alias="IDBAccess" type="Interfaces.IDataProvider, Interfaces" />
<typeAlias alias="SQLDataAccess" type="SQLDataProvider.DataProvider, SQLDataProvider" />
</typeAliases>-->
<!--New syntax supported in newer versions. So if above syntax does not work then try below one-->
<alias alias="IDBAccess" type="Interfaces.IDataProvider, Interfaces" />
<alias alias="SQLDataAccess" type="SQLDataProvider.DataProvider, SQLDataProvider" />
<alias alias="OracleDataAccess" type="OracleDataProvider.DataProvider, OracleDataProvider" />
<containers>
<container name="DataAccessProvider">
<register type="IDBAccess" mapTo="SQLDataAccess"/>
<register type="IDBAccess" mapTo="SQLDataAccess" name="SQLDataAccess" />
<register type="IDBAccess" mapTo="OracleDataAccess" name="OracleDataAccess" />
</container>
</containers>
</unity>
</configuration>
在课堂上我尝试阅读配置,但得到 NULL。
UnityConfigurationSection section =
(UnityConfigurationSection)ConfigurationManager.GetSection("unity");
【问题讨论】:
-
你为什么使用app.config而不是普通的json配置?
-
为什么需要 Unity?
-
我在 Asp.Net core 中使用 Unity,因为嵌入式 DI 太简单了。
-
出于好奇,Unity 做了哪些嵌入式 DI 无法做到的事情?另外,您使用什么特定的 NuGet 包和版本将统一引入您的项目?
-
我问的原因是您可以使用Unity.Microsoft.DependencyInjection,这将允许您使用
UnityConfigurationOptions像任何其他.net Core 配置对象一样设置普通JSON。
标签: c# .net-core asp.net-core-mvc unity-container asp.net-core-webapi