C# 项目库,其中 app.config 作为对 azure 函数的 dll 引用,键不可访问

问题描述 投票:0回答:1

带有 app.config 文件的 C# 项目库,用于访问项目中的键,当我将此项目添加为对 azure 函数的 dll 引用时,dll 中使用的键无法在 dll 的元数据中访问并引发错误。

在函数 local.settings.json 文件中我添加了同名的密钥仍然存在问题

c# azure function dll reference
1个回答
0
投票

我可以使用以下代码检索 Azure Function 应用程序中

app.config
设置的值。

 var test = Properties.Settings.Default.Setting1;

enter image description here

我的

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。

enter image description here

我的

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);

输出: enter image description here

函数 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);
    -------
 }

输出: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.