Отправка имени свойства в метод

1

У меня вопрос, похожий на то, что было задано в прошлом, но мне интересно, есть ли способ достичь этого:

Отправка методу имени самого свойства без непосредственного использования свойства. (IE. Not GetName (() => ParamSearch1parameter - как показано на другом решении)

Пример кода:

#region Props

    public string ParamSearch1
    {
        get
        {
            return GetValueFromQueryString(/*Here should come a string called ParamSearch1*/); 

        }
    }

    #endregion

    #region Helper Methods

    private string GetValueFromQueryString(string keyName)
    {
        return string.IsNullOrEmpty(Request.QueryString[keyName]) ? "" : Request.QueryString[keyName];
    }

    #endregion
  • 1
    У меня еще не было первого кофе, но что ?!
  • 0
    лол, да может это не понятно. Я отредактирую
Показать ещё 2 комментария
Теги:
properties

1 ответ

4
Лучший ответ

Если вы нацеливаете.NET 4.5, вы можете использовать атрибут CallerMemberName.

public string ParamSearch1
{
    get
    {
       return GetValueFromQueryString();     
    }
}

private string GetValueFromQueryString([CallerMemberName] string keyName = "")
{
    return string.IsNullOrEmpty(Request.QueryString[keyName]) ? "" : Request.QueryString[keyName];       
}

В противном случае нет встроенного решения, кроме решений, с которыми вы уже сталкивались. Если вы счастливы добавить дополнительную зависимость, вы можете использовать пакет CallerMemberNameAttribute MS BCL, чтобы предоставить CallerMemberNameAttribute предыдущим версиям.NET или следовать за сообщением Томаса при воссоздании атрибута в комментариях.

  • 0
    На самом деле, вам не нужно ориентироваться на .NET 4.5. Вам просто нужно использовать компилятор C # 5 и вручную воссоздать атрибут CallerMemberName . У меня есть запись в блоге об этом здесь , но мой сайт сейчас не работает ... работает над этим.
  • 0
    Спасибо, обновил ответ, заинтересован в реализации. Я также вспомнил пакет BCL, но сам никогда не пробовал.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню