在C#/ Silverlight应用程序中使用反射访问私有方法

Val*_*Val 7 c# reflection silverlight

我的代码使用反射调用方法:

        scoringType.InvokeMember("scoringClient_ScorePostsCompleted",
            BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic,
            null, scoringInstance,
            new object[] { sArg, eArg });
Run Code Online (Sandbox Code Playgroud)

其中scoringInstance是ModelView类的一个实例.该方法是私有的,但我使用BindingFlags.NonPublic,所以,我应该能够访问它,但我不能 - 我得到MethodAccessException异常:"尝试方法...访问方法...失败." 谷歌似乎没有答案.你知道如何解决这个问题吗?

Mer*_*OWA 11

来自MSDN上的silverlight

在Silverlight中,您无法使用反射来访问私有类型和成员.如果类型或成员的访问级别阻止您在静态编译的代码中访问它,则无法使用反射动态访问它.

编辑:

Silverlight 5现在只允许私有成员的反映,如果您在浏览器外或浏览器中使用提升的权限运行(使用生成的测试页面在浏览器中不工作).