ASP.NET 5(vNext)和dnx451依赖项的配置
我对ASP.NET vNext非常陌生,我正在努力配置项目中的依赖项。 我在project.json的dnx451部分中定义了一些依赖项。他们通常通过类似ConfigurationManager的方式从旧式app.config文件加载设置ASP.NET 5(vNext)和dnx451依赖项的配置,asp.net,.net,.net-core,asp.net-core,Asp.net,.net,.net Core,Asp.net Core,我对ASP.NET vNext非常陌生,我正在努力配置项目中的依赖项。 我在project.json的dnx451部分中定义了一些依赖项。他们通常通过类似ConfigurationManager的方式从旧式app.config文件加载设置 <appSettings> <add key="myConfigKey" value="myConfigValue" /> </appSettings> 我了解了如何在基本ASP.NET 5中配置应用程序,如下所述
<appSettings>
<add key="myConfigKey" value="myConfigValue" />
</appSettings>
我了解了如何在基本ASP.NET 5中配置应用程序,如下所述:
所以我的问题是:有没有办法让依赖程序集知道它们的配置值
致以最诚挚的问候您应该通过构造函数或属性注入将值传递到程序集中。像AutoFac这样的DI容器可以帮助您轻松地完成这项工作,但您可以不使用poor man的DI来完成这项工作
public class SomeClassInAssembly
{
private readonly string _configValue;
public SomeClassInAssembly(string configValue)
{
_configValue = configValue;
}
// Some method that now has access to your variable
}
然后在调用的应用程序中,只需以通常的方式从配置中检索并将其传递给恐怕直接使用
ConfigurationManager
的库在ASP.NET 5下无法工作。您需要更新库或让他们更新库以抽象配置部分,以便您可以通过编程方式传递配置。实际答案如下:
就像奥列格在上面的评论中说的那样
我可以将app.config放在我的DLL旁边,并可以像那样配置我的第三方LIB
无论如何,感谢您的回答。请查看文档的列表。“让依赖程序集知道其配置值的方法”的含义还不完全清楚。您是否在类库中决定了您的应用程序需要访问
appconfig.json
的某些部分?你有什么接口?您可以将全局配置的一部分转发到类库吗?ASP.NET 5文档,但您可以使用new ConfigurationBuilder().AddJsonFile(“appsettings.json”).Build().GetSection(“PathToMyConfigKey”)
感谢您的回复。实际上,我对这些类库没有影响,也不会像上面描述的那样以旧的方式加载它们的配置。它们被构建为可以直接访问app.config并从中获取appSettings。我只是想知道是否有办法加载这些设置。对不起,我还是不完全理解你的问题。如果您删除了dnxcore50
并在项目中仅使用dnx451
,那么它将使用您知道的相同.NET Framework 4.5.1。如果某个组件直接访问某个XML文件并直接读取某个myConfigKey,那么它将获得该值。如果我们仅仅把“一些遗留依赖程序集”写成“黑盒”,那就很难说什么了。你试过用它吗?你有什么问题吗?没有人可以肯定地说,某些未知的旧代码在已更改的环境中正常工作。我确实删除了dnxcore50。以下是我现在还不明白的:我可以将app.config也添加到我的项目中吗?事实上,我从未尝试将app.config添加到ASP.NET 5项目中。谢谢您的回答。好的,因为我没有访问类库的权限,而且它们以上述方式直接从app.config加载设置,所以我无法将配置注入到类中。
public class SomeClassInAssembly
{
private readonly string _configValue;
public SomeClassInAssembly(string configValue)
{
_configValue = configValue;
}
// Some method that now has access to your variable
}