Silverlight 4,继承WebClient

时间:2011-09-10 04:49:50

标签: silverlight cookies silverlight-4.0 webclient

根据建议,我在几个网页上看到了(例如Using CookieContainer with WebClient class),我将WebClient类子类化为使用cookie:

public class MyWebClient : System.Net.WebClient
{

}

现在,当我初始化MyWebClient时:

MyWebClient wc = new MyWebClient();

它抛出TypeLoadException。我的操作系统是Windows 7(日语),因此错误消息不是英文版;我发现它与安全规则有关。可能是什么问题?

2 个答案:

答案 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() {}
}