Reputation: 639
My code invokes method using reflection:
scoringType.InvokeMember("scoringClient_ScorePostsCompleted",
BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic,
null, scoringInstance,
new object[] { sArg, eArg });
where scoringInstance is an instance of a ModelView class. The method is private, but I use BindingFlags.NonPublic, so, i should be able to access it, but I cannot - I get MethodAccessException exception: "Attempt by method ... to access method ... failed." Google doesnt seem to have an answer. Do you have any idea how to fix it by any chance?
Upvotes: 7
Views: 2869
Reputation: 4742
If you need access to non-public members, you can do this using the LambdaExpression. I wrote this article that explains in detail why it works.
Upvotes: 3
Reputation: 7592
From MSDN on silverlight
In Silverlight, you cannot use reflection to access private types and members. If the access level of a type or member would prevent you from accessing it in statically compiled code, you cannot access it dynamically by using reflection.
Edit:
Silverlight 5 now does allow for reflection of private members ONLY if you're running with elevated privileges either out-of-browser or in-browser (in-browser using the generated test page DOES NOT WORK).
Upvotes: 11