根据建议,我在几个网页上看到了(例如Using CookieContainer with WebClient class),我将WebClient类子类化为使用cookie:
public class MyWebClient : System.Net.WebClient
{
}
现在,当我初始化MyWebClient时:
MyWebClient wc = new MyWebClient();
它抛出TypeLoadException。我的操作系统是Windows 7(日语),因此错误消息不是英文版;我发现它与安全规则有关。可能是什么问题?
答案 0 :(得分:2)
WebClient的构造函数标有SecuritySafeCritical
属性。看起来这就是导致安全异常的原因。我尝试将相同的属性应用于MyWebClient
的构造函数,但这不起作用。从我读过的内容来看,Silverlight中不允许这样的事情。例如,请参阅this other question。
作为参考,确切的异常消息是:
System.TypeLoadException
违反了继承安全规则 覆盖成员:'MyWebClient..ctor()'。安全可访问性 重写方法必须与。的安全可访问性相匹配 方法被覆盖。
我希望有更好的答案......
答案 1 :(得分:0)
您需要使用SecuritySafeCritical属性实现默认构造函数。今天遇到这个问题,这就是解决方案。
public class MyWebClient : System.Net.WebClient
{
[SecuritySafeCritical]
public MyWebClient() : base() {}
}