2012-05-08 8 views
0

弱いイベント参照を動的に生成するためにSharpObservationフレームワークを使用しています。デリゲート内からアクションを参照すると、TypeAccessExceptionが発生します。動的に生成された弱いイベントがアクションのために失敗しました<T>が呼び出されました

試み方法によって 'DynamicClass.Construct(System.EventHandler XYZ > >、System.Delegate)' タイプにアクセスするための 'System.Action3c__DisplayClass6、System.Objectの、XYZ>' が失敗しました。

私はアクションを削除すると、正常に動作します。私はアクションの全身をコメントアウトしようとしていて、まだ失敗しています。私は、コンパイラが作成したメソッドとは何かがあると信じています。これは、外部からアクセスできないように、privateまたはinternalまたは何かのアクションです。どうすればこの問題を回避できますか?

Action eventCompleted =() => 
    { 
     SomeMethod(); 
    }; 

    EventHandler<XYZ> eventDelegate = delegate 
    {   
     System.Windows.Application.Current.Dispatcher.BeginInvoke(eventCompleted); 
    }; 

    newItem.Event += eventDelegate.MakeWeak(); 

答えて

0

JITアクセスチェックを行わないようにソースを変更する必要がありました。これにはいくつかのセキュリティ上の問題があります。 (真のパラメータを追加)

var dynamicMethod = new DynamicMethod("Construct", typeof(TDelegate), args, true); 
関連する問題