Type Initializer
本文关键字:Initializer Type | 更新日期: 2023-09-27 18:26:02
我有一个配置类:
namespace SomeCompanyName.SomeAppName
{
public static class MyConfigClass
{
public static readonly string ConsKey = Config.GetAppConfigSetting("ConsKey");
public static readonly string ConsSecret = Config.GetAppConfigSetting("ConsSecret");
}
}
我有一种方法试图在字典中使用其中的一些值:
public HttpWebResponse SomeMethod(....)
{
Dictionary<string, string> headerParams = new Dictionary<string, string> {
{Constants.Cons, MyConfigClass.ConsumerKey},
{Constants.Token, MyConfigClass.SingleAccessToken},
{Constants.ignatureMethod, Constants.SignatureMethodTypeHMACSHA1},
{Constants.Timestamp, HttpUtility.GenerateTimeStamp()
};
}
出于某种原因,我得到了这个错误:
"SomeAppConfig的类型初始值设定项引发异常。"
如果SomeAppConfig类是静态的,则无法找出原因。
更新:
以下是GetAppConfigSetting:的定义
public class Config
{
public static string GetAppConfigSetting(string configKey)
{
return ConfigurationManager.AppSettings[configKey] ?? string.Empty;
}
}
更新:
这是我的测试项目中的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConsKey" value="HHGRT6jV4M" />
<add key="ConsSecret" value="QR47dbduycAc" />
</appSettings>
</configuration>
public static readonly string ConsKey = Config.GetAppConfigSetting("ConsKey");
public static readonly string ConsSecret = Config.GetAppConfigSetting("ConsSecret");
确保GetAppConfigSetting
可以毫无问题地访问ConsKey
和ConsSecret
。从初始值设定项引发的异常应该包含更多信息,以帮助您调试该问题。
这意味着静态构造函数中出现异常。在这种情况下,您的属性初始值设定项。也许您所寻求的配置密钥不存在。
您的代码中有拼写错误
Constants.ignatureMethod, Constants.SignatureMethodTypeHMACSHA1}
应该是
Constants.SignatureMethod, Constants.SignatureMethodTypeHMACSHA1}