ServicePointManager.ServerCertificateValidationCallback = (RemoteCertificateValidationCallback)Delegate.Combine(ServicePointManager.ServerCertificateValidationCallback, (object se, X509Certificate cert, X509Chain chain, SslPolicyErrors sslerror) => true);
ServicePointManager.ServerCertificateValidationCallback = (RemoteCertificateValidationCallback)Delegate.Combine(ServicePointManager.ServerCertificateValidationCallback, (object se, X509Certificate cert, X509Chain chain, SslPolicyErrors sslerror) => true);
无法将 lambda 表达式 转换为类型“System.Delegate”,因为它不是委托类型。
哪里错了,这是什么错误?哪位帮忙分析分析?
6 个解决方案
#1
lamda是高级的语法糖,往往不能用传统低级语法习惯去考虑。这有可能是lamda表达式内部的某个程序块编译不过去,造成使用lamda的delegate编译不匹配。此时可能需要先解决后边的一两个问题。
但愿c#的编译器能调整其设计,把这类异常信息的先后次序调整一下。。
但愿c#的编译器能调整其设计,把这类异常信息的先后次序调整一下。。
#2
可以试试(MethodInvoker)lambda
#3
以前winform中用的……不知道其他类型的怎么转……不一定对哈
#4
用不着Delegate.Combine
你可以用+=
你可以用+=
#5
ServicePointManager.ServerCertificateValidationCallback =
RemoteCertificateValidationCallback)
Delegate.Combine(ServicePointManager.ServerCertificateValidationCallback,
new RemoteCertificateValidationCallback(ValidateServerCertificate));
public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
#6
using System.Linq;
搞定
搞定
#1
lamda是高级的语法糖,往往不能用传统低级语法习惯去考虑。这有可能是lamda表达式内部的某个程序块编译不过去,造成使用lamda的delegate编译不匹配。此时可能需要先解决后边的一两个问题。
但愿c#的编译器能调整其设计,把这类异常信息的先后次序调整一下。。
但愿c#的编译器能调整其设计,把这类异常信息的先后次序调整一下。。
#2
可以试试(MethodInvoker)lambda
#3
以前winform中用的……不知道其他类型的怎么转……不一定对哈
#4
用不着Delegate.Combine
你可以用+=
你可以用+=
#5
ServicePointManager.ServerCertificateValidationCallback =
RemoteCertificateValidationCallback)
Delegate.Combine(ServicePointManager.ServerCertificateValidationCallback,
new RemoteCertificateValidationCallback(ValidateServerCertificate));
public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
#6
using System.Linq;
搞定
搞定