gpt4 book ai didi

c# - .net 核心中的 Unity 框架

转载 作者:行者123 更新时间:2023-11-30 17:28:06 27 4
gpt4 key购买 nike

我是 .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");

最佳答案

如果您指的是 Unity DI 容器框架,则无需设置它,因为 dotnet core 带有它自己的 IoC DI 容器。 dotnet 核心也使用 appSettings.json 配置文件。在 Startup.cs 中应该有这个方法:

public void ConfigureServices(IServiceCollection services) 
{

}

并且您可以使用服务对象配置您的依赖项,如下所示:

services.AddSingleton<IContract, Contract>();

关于如何配置依赖项还有其他选项,我刚刚介绍了 Singleton 选项,但您可以从这里开始。

检查这一点的最简单方法是开始一个新项目:

dotnet new mvc -n testProj

然后检查 Startup.cs 文件,添加一个接口(interface),一个实现,然后将它注册到 IServiceCollection 实例中。

关于c# - .net 核心中的 Unity 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53562269/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com