ID

Uploaded

Status

Description

Work Items

Action

12420
by salfab
Jun 15, 2012
1:34 PM

Being evaluated

Calling a method that would throw an exception would have an unexpected behavior : instead of throwing the expected exception, an other exception was thrown, because the logic was assuming that the method was a generic one.

With this patch, calling a method that throws an exception would not swallow the exception anymore and will throw the expected one.

Download

11733
by gurumeditation
Mar 12, 2012
4:48 PM

Being evaluated

Bad check before attempting to call generic functions:


//
// Try to call a generic instance method
//
if (m_genInstanceMethods.ContainsKey(binder.Name)
&& m_genInstanceMethods[binder.Name].ContainsKey(args.Length))
{
List<MethodInfo> methods = new List<MethodInfo>();

Download

6400
by keithhenry
Jul 26, 2010
7:52 AM

Being evaluated

I had a look at using this to replace some of our current extensive reflection calls. In doing that I added XML documentation, refactored to the default MS style cop settings and split out some common actions into the helper class - I find doing that helps me learn how stuff works.

I also fixed a bug where calling static generic methods would fail because it looks them up against the wrong dictionary and extended the .New<T> methods to take a list of params for the constructor and enabled them to find private ones.

It's a really nice idea - I don't know whether we'll end up using it though. If we were I'd investigate some significant performance improvements that could be made through this when repeatedly doing reflection calls - for instance statically caching method infos so the lookup overhead is only on the first call and by using delegate calls instead of some invokes (see http://msmvps.com/blogs/jon_skeet/archive/2008/08/09/making-reflection-fly-and-exploring-delegates.aspx).

Here's my altered code, feel free to use or reject as you wish...

Keith

Download

View All
  • 1-3 of 3 Patches
    • Previous
    • 1
    • Next
    • Showing
    • All
    • Patches