Я пытаюсь получить значения конфигурации со статическим классом:
public static class Configurator
{
public static string HashesConnectionString { get; } = Environment.GetEnvironmentVariable("HashesConnectionString");
public static string SftpUser { get; } = Environment.GetEnvironmentVariable("SftpUser");}
При попытке получить их из отдельного класса я получаю очень неловкую ошибку:
System.TypeInitializationException
HResult=0x80131534
Message=The type initializer for 'MyHandler.Configuration.Configurator' threw an exception.
Source=MyHandler
StackTrace:
at MyHandler.Configuration.Configurator.get_HashesConnectionString() in C:\Users\John.S\source\repos\MyHandler\MyHandler\Configuration\Configurator.cs:line 11
at MyHandler.OnMumboCaseBlobTriggered.RunAsync(CloudBlockBlob blob, String name, TraceWriter log) in C:\Users\John.S\source\repos\MyHandler\MyHandler\Functions\OnMumboCaseBlobTriggered.cs:line 31
at Microsoft.Azure.WebJobs.Host.Executors.VoidMethodInvoker`2.InvokeAsync(TReflected instance, Object[] arguments)
at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.<InvokeAsync>d__9.MoveNext()
Inner Exception 1:
ArgumentNullException: Value cannot be null.
Parameter name: String
Первоначально я думал, что с Environment.GetEnvironmentVariable()
происходит что-то смешное, но этого не произошло, когда я проверял эту гипотезу с помощью жесткого кодирования значений конфигурации, например, так:
public static class Configurator
{
public static string HashesConnectionString {get;} = "my hardcoded value"
}
Но исключение сохраняется!
Что не так с моим статическим классом? Я неправильно использую этот класс?
Это исключение возникает в этом примере:
public static void RunAsync([BlobTrigger("awesomeBlobber", Connection = "StorageConnectionString")] CloudBlockBlob blob, string name, TraceWriter log)
{
var connString = Configuration.Configurator.HashesConnectionString;
* *} Тысяча двадцать-один