获得证书时例外

时间:2015-01-07 08:26:06

标签: c#

当我尝试在下面的代码行中使用First时,我收到了一个未处理的异常。

X509Certificate2 cert = store.Certificates.Cast<X509Certificate2>()
                                          .First(item => item.FriendlyName =="myfriendlyname");

我甚至尝试了FirstOrDefaultSingleSingleOrDefault并获得了

  

Unhandled Exception System.ApplicationNullException:value不能   空。

请帮我解决问题。

2 个答案:

答案 0 :(得分:-1)

试试这个:

X509Certificate2 cert = store.Certificates.Cast<X509Certificate2>().Where(item => item.FriendlyName =="myfriendlyname").FirstOrDefault();

答案 1 :(得分:-1)

当您尝试访问查询的第一个元素时,如果它不存在,则抛出异常。您应该修改您的代码并使用FirstOrDefault方法。当查询结果为空时,结果将为null。然后,您可以验证结果是否为空。

var cert = store.Certificates.Cast<X509Certificate2>().Where(item => item.FriendlyName =="myfriendlyname").FirstOrDefault();
if(cert != null)
{
   sth;
}