Search code examples
c#.net.net-4.0base-class-librarycallermembername

CallerMemberName in .NET 4.0 not working


I am trying to use CallerMemberName attribute in .NET 4.0 via BCL portability pack. It is always returning an empty string instead of the member name. What am I doing wrong?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        MessageBox.Show(new class2().CallMe);
    }
}

public class class2
{
    public string CallMe 
    {
        get
        {
            return HelpMe();
        }
    }

    private string HelpMe([CallerMemberName] string param = "")
    {
        return param;
    }
}

Solution

  • I found the solution, though it's not useful to me. You need to install KB2468871 on top of .NET Framework 4 to be able to use caller info attributes. Unfortunately, I can't ask each developer to remember to install it when they setup development environment.