我们有一些传统的4.5.2类库,它们共同使用RestClient.post(url_from_the_form, { login: 'foo', password: 'bar' })
是否可以在.net core 2应用程序中引用这些内容,以便在引擎盖下正确修补配置?
即旧的ConfigurationManager.AppSettings[key]
调用正确地从json或xml读取配置,但是在.netcore2应用程序中。
如果我将ConfigurationManager.AppSettings[key]
问题移植到appSettings.json,则对keys
的调用始终返回null。
一个例子是:
ConfigurationManager.AppSettings
然后:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"appSettings": {"test": "bo"},
"test": "hi"
}
将显示:
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", ConfigurationManager.AppSettings["test"] , ConfigurationManager.AppSettings["appSettings:test"] };
}
答案 0 :(得分:6)
您正在寻找的设置是可能的,设置可以保存在app.config中。
我有一个.NET 4.5.2类库&#34; MyLibrary&#34;和.NET Core 2.0 Web应用程序&#34; WebApp&#34;引用完整的.NET框架4.6.1。
<强>在MyLibrary 强>
System.Configuration
class Foo
,可以使用键foo
<强> Web应用程序强>
System.Configuration
app.config
部分的appSettings
文件。 (App.config
默认存在于.NET Core 2.0 Web应用程序项目中。)Foo
的实例中使用,调用其GetSomething
方法,通过该方法将值bar
分配给变量something
。所有其他文件和设置都是默认文件和设置。以下是上面提到的那些。
.NET 4.5.2
<强> Foo.cs 强>
using System;
using System.Configuration;
namespace PFX
{
public class Foo
{
public String GetSomething()
{
String r = ConfigurationManager.AppSettings["foo"];
return r;
}
}
}
.NET Core 2.0.1引用完整的.NET框架4.6.1。
<强> WebApp.csproj 强>
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.4" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.4" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.3" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.3" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyLibrary\MyLibrary.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="System.Configuration" />
</ItemGroup>
</Project>
<强>的App.config 强>
<configuration>
<runtime>
<gcServer enabled="true"/>
</runtime>
<appSettings>
<add key="foo" value="bar"/>
</appSettings>
</configuration>
<强> Program.cs的强>
using System;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
namespace WebApp
{
public class Program
{
public static void Main(string[] args)
{
PFX.Foo foo = new PFX.Foo();
String someting = foo.GetSomething(); // bar
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(String[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}