Свободный помощник выражений для чтения открытых констант и статических полей / свойств - PullRequest
0 голосов
/ 16 апреля 2009

Кто-нибудь знает, как написать метод ExpressionHelper.GetName, чтобы я мог получить имя открытого статического / константного свойства или поля, используя Reflection и C # 3.0

Так что для

static class B
{
  public const string Field = "mittens";
  public static string Prop = "the kitten";
}

Следующие утверждения будут работать (синтаксис явно не будет работать)

Assert.AreEqual(ExpressionHelper.GetName(B.Field),"Field");
Assert.AreEqual(ExpressionHelper.GetName(B.Prop),"Prop");

Важно, чтобы при компиляции этих полей / реквизитов возникали ошибки времени компиляции.

Спасибо!

1 Ответ

1 голос
/ 16 апреля 2009

Статья LINQ вне запросов: строгое отражение может предложить решение. Я прочитал это несколько месяцев назад - поэтому я не могу предложить однозначного решения на данный момент. Но, может быть, это поможет.

...