' Class'的类型初始值设定项抛出一个例外

时间:2014-10-31 20:04:38

标签: c# encryption console-application nullreferenceexception

我正在编写一个控制台应用程序作为工作中的一个小工具来加密/解密传入的数字。以下代码会引发此错误:

private static readonly string _encryptedKey = 
    ConfigurationManager.AppSettings["AffinityEncryptedKey"];

private static readonly string _encryptedInitializationVector = 
    ConfigurationManager.AppSettings["AffinityEncryptedInitializationVector"];

private static readonly byte[] _key = Convert.FromBase64String(
    ServiceLocator.Current
        .GetInstance<IEncryptionService>()
        .Decrypt(_encryptedKey));

private static readonly byte[] _initializationVector = Convert.FromBase64String(
    ServiceLocator.Current
        .GetInstance<IEncryptionService>()
        .Decrypt(_encryptedInitializationVector));

static void Main(string[] args)
{ ... }

这一行:private static readonly byte[] _key = Convert.FromBase64String(ServiceLocator.Current.GetInstance<IEncryptionService>().Decrypt(_encryptedKey))正在抛出错误,我确信它之后会发生爆炸。

我正在从app.config文件中检索的值存在并成功检索。我在项目中引用了IEncryptionService和ServiceLocator的DLL,并通过using语句包含它。

我在调试时检查了InnerException,它说:Object reference not set to an instance of an object,源是Microsoft.Practices.ServiceLocation。问题是Current的{​​{1}}属性为空。

我不知道如何解决这个问题。我从另一个项目的其他地方逐字复制了代码。有谁知道为什么ServiceLocator属性为null,我该怎么做才能纠正这个问题?谢谢你的帮助。

0 个答案:

没有答案