Есть какие идеи как получить имя в случае, если свойство статическое:
public static class xWrapper
{
public static Object TestName
{
get { return X(nameof(???)); } // вот тут надо получить имя "TestName"
}
}
Решение для .NET 4.5+:
public static string GetPropertyName([System.Runtime.CompilerServices.CallerMemberName] String propertyName = "")
{
return propertyName;
}
public static Object TestName
{
get {
return X(GetPropertyName());
}
}
1.nameof(PropertyName)
2.Даный код вернет название проперти в геттере и сеттере без прямого указывания названия :
MethodBase.GetCurrentMethod().Name.Replace("set_", "").Replace("get_", "");
Код не очень красивый, зато сработает.
3.Третий путь -- подобен второму: вытягивать из стектрейса эту же информацию и подниматся на 1 уровень вверх:
public static class Props
{
public static string CurrPropName =>
(new StackTrace()).GetFrame(1).GetMethod().Name.Replace("set_", "").Replace("get_", "");
public static string CurrMethodName =>
(new StackTrace()).GetFrame(1).GetMethod().Name;
}
И если ты из проперти вызовешь Props.PropName оно вернет тебе название самой проперти. Если вызовешь Props.CurrMethodName -- даст название метода в котором ты сейчас находишся.
PS: но мне больше нравится решение MSDN.WhiteKnight
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости