Есть какие идеи как получить имя в случае, если свойство статическое:
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
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Работа с базой accdb происходит через клиент на C# Какой вариант оптимальный? Запросы не будут сверх частыми, мб 1-2 в минуту 1Открыть соединение...