2011-09-10 8 views
4

が、私はいくつかのウェブページで見た(たとえばUsing CookieContainer with WebClient classのために)、私はそれでクッキーを使用するようにWebClientクラスをサブクラス化のSilverlight 4、サブクラスのWebClient

MyWebClient wc = new MyWebClient(); 

これは、TypeLoadExceptionをスローします。私のOSはWindows 7(日本語)なので、エラーメッセージは英語ではありません。私はそれがセキュリティルールに関連していると思う。何が問題なのでしょうか?

+0

継承の代わりに、組成 – Denis

答えて

2

WebClientのコンストラクタには、SecuritySafeCriticalという属性が設定されています。それはセキュリティ例外の原因となっているようです。私はMyWebClientのコンストラクタに同じ属性を適用しようとしましたが、うまくいきませんでした。私が読んだことから、この種のものはSilverlightでは許可されていません。たとえば、this other questionを参照してください。

参考のために、正確な例外メッセージがある:

System.TypeLoadExceptionメンバをオーバーライド ながら違反

継承セキュリティルール: 'MyWebClient..ctor()'。 のセキュリティアクセシビリティの場合、オーバーライドするメソッドは、オーバーライドされる メソッドのセキュリティアクセシビリティに一致する必要があります。

私はあなたがSecuritySafeCritical属性を持つデフォルトコンストラクタを実装する必要が

0

...良い答えがあったことを望みます。今日この問題があり、それが解決策でした。

public class MyWebClient : System.Net.WebClient 
{ 
    [SecuritySafeCritical] 
    public MyWebClient() : base() {} 
} 
関連する問題