Silverlight 4,WebClient子类化

Silverlight 4,WebClient子类化,silverlight,cookies,silverlight-4.0,webclient,Silverlight,Cookies,Silverlight 4.0,Webclient,根据一条建议,我在几个网页上看到(例如),我将WebClient类子类化,以便在其中使用cookie: public class MyWebClient : System.Net.WebClient { } 现在,当我初始化MyWebClient时: MyWebClient wc = new MyWebClient(); 它抛出TypeLoadException。我的操作系统是Windows7(日语),所以错误信息不是英语;我知道这与安全规则有关。可能有什么问题?WebClient的构造函

根据一条建议,我在几个网页上看到(例如),我将WebClient类子类化,以便在其中使用cookie:

public class MyWebClient : System.Net.WebClient
{

}
现在,当我初始化MyWebClient时:

MyWebClient wc = new MyWebClient();

它抛出TypeLoadException。我的操作系统是Windows7(日语),所以错误信息不是英语;我知道这与安全规则有关。可能有什么问题?

WebClient的构造函数被标记为
SecuritySafeCritical
属性。看起来这就是导致安全异常的原因。我尝试将相同的属性应用于
MyWebClient
的构造函数,但没有成功。据我所知,在Silverlight中这种事情是不允许的。例如,请参见

作为参考,确切的异常消息为:

System.TypeLoadException

继承时违反了安全规则 重写成员:“MyWebClient..ctor()”。网络的安全可访问性 重写方法必须与的安全可访问性匹配 方法被重写


我希望有更好的答案…

您需要实现一个带有SecuritySafeCritical属性的默认构造函数。我今天遇到了这个问题,这就是解决办法

public class MyWebClient : System.Net.WebClient
{
    [SecuritySafeCritical]
    public MyWebClient() : base() {}
}

您应该使用组合而不是继承