.NET Reflector 9

.NET Reflector 9.0 release notes

16th November, 2015

Features

  • Visual Studio add-in now supports Visual Studio 2015
  • Support for the following C# 6 features:

Null conditional operator

mightBeNull?.MethodCalledIfNotNull();

Auto property initializers

public class Customer
{
    public string First { get; set; } = "Jane";
    public string Last { get; set; } = "Doe";
}

Exception filters

try 
{
 // HTTP request
}
catch (System.Web.HttpException e) if (e.GetHttpCode() == 404)
{
 // Handle exception
}

Indexer initializers

var dict = new Dictionary<int,string>
{ 
    [3] = "foo",
    [42] = "bar"
};

Expression bodied function members and properties

  public int Height { get; set; }
  public int Radius { get; set; }

  public double Area => Math.PI*2.0*Radius*(Height + Radius);
  public override string ToString() => $"Cylinder: Radius={Radius}, Height={Height}";

Roslyn-compiled async code and anonymous methods

The Roslyn compiler and the C#5 compiler emit different IL for asynchronous and anonymous methods. Reflector can now correctly decompile Roslyn-compiled code for these language constructs.

String interpolation

var variables = "cheese";
var s = $"This string has {variables} in it";

Fixes

  • RP-3408 - Reflector no longer crashes when javascript is disabled in Internet Explorer security settings

  • RP-1533 - Fixed crash updating the assembly list tree

  • RP-3478 - The 'show inherited members' keyboard shortcut (CTRL-I) works again

  • RP-3881 - Switch on strings is no longer decompiled as a set of if statements

  • RP-2867 - Fix crash displaying the splash screen on systems without .NET 3.5 or higher

  • RP-2759 - Fix crash in Visual Studio add-in

  • RP-3888 - Decompiler no longer generates code which references object before its construction

  • RP-3882 - Reflector now correctly detects derived classes of inner classes

  • Improvements to UI on high DPI displays

  • F12 (Go To Definition) now works correctly in Visual Studio 2015

Known issues

  • NameOf is not supported
  • await in catch/finally blocks is not supported

Thanks to Paulo Morgado for his input during the beta program.


Didn't find what you were looking for?