带有 app.config 文件的 C# 项目库,用于访问项目中的键,当我将此项目添加为对 azure 函数的 dll 引用时,dll 中使用的键无法在 dll 的元数据中访问并引发错误。
在函数 local.settings.json 文件中我添加了同名的密钥仍然存在问题
我可以使用以下代码检索 Azure Function 应用程序中
app.config
设置的值。
var test = Properties.Settings.Default.Setting1;
我的
app.config
:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ClassLibrary1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<ClassLibrary1.Properties.Settings>
<setting name="Setting1" serializeAs="String">
<value>Test Value from app.config</value>
</setting>
</ClassLibrary1.Properties.Settings>
</userSettings>
</configuration>
感谢@Peter Morlion提供了清晰的步骤。
Class library
=> Class1.cs
文件中,添加以下代码 public class Class1
{
public string GetAppSettings()
{
var setval = Properties.Settings.Default.Setting1;
return setval;
}
}
Azure Function
App中引用类库dll。我的
Function1.cs
:
[Function("Function1")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
Class1 appset = new Class1();
var values = appset.GetAppSettings();
_logger.LogInformation(values);
输出:
函数 local.settings.json 文件我添加了同名的密钥仍然存在问题
要读取
local.settings.json
文件中的值,请在 Function1.cs
中添加以下代码。
local.settings.json
:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"testsetting": "test value"
}
}
private readonly ILogger<Function1> _logger;
public IConfiguration myconfig;
public Function1(IConfiguration config,ILogger<Function1> logger)
{
_logger = logger;
myconfig = config;
}
[Function("Function1")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
string settingValue = myconfig["testsetting"];
_logger.LogInformation(settingValue);
-------
}
输出: