Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> (Expression<Func<T>> получить имя типа. 
:(
    Опции темы
KuMa1104
Дата 20.10.2011, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Ещё раз здравствуйте, писал про memberInfo http://forum.vingrad.ru/forum/topic-340242.html
решил переформулировать.

Код

public static string GetPropertyName<T>(Expression<Func<T>> expression)
        {
            MemberExpression body = (MemberExpression)expression.Body;
            return body.Member.Name;
        }


Код

PlanTrigger pTriger = new PlanTrigger ();
 pTriger.EventOther1Value = "AAA";

 string s2 = ReflectionTools.GetPropertyMSWOrdName(() => pTriger.EventOther1Value); // Вернет "EventOther1Value"


 

Я хочу получит ещё и имя типа и  конкатировать их что бы на выходе получить "PlanTrigger_EventOther1Value " это возможно?

Не добавлять дополнительных аргументов в ф-ию!!!




--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Fitc
Дата 20.10.2011, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.1.2010

Репутация: 3
Всего: 4



Внутри метода вызываешь MethodBase.GetCurrentMethod(), получаешь из него объект типа MethodBase - наследник MemberInfo, у него есть свойство DeclaringType, у него свойство Name, так ты получишь текст "PlanTrigger"
PM MAIL   Вверх
KuMa1104
Дата 21.10.2011, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Код

 public class ReflectionTools
{
        public static string GetPropertyName<T>(Expression<Func<T>> expression)
        {

            string name = MethodBase.GetCurrentMethod().DeclaringType.Name;// Вернет ReflectionTools

            MemberExpression body = (MemberExpression)expression.Body;
            return body.Member.Name;
        }
}


Не пойму как здесь можно при помощи MethodBase можно получить PlanTrigger????


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Fitc
Дата 21.10.2011, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.1.2010

Репутация: 3
Всего: 4



извиняюсь, не так понял вопрос, тогда, можно сделать как я тут ответил http://forum.vingrad.ru/forum/topic-340242.html
PM MAIL   Вверх
KuMa1104
Дата 21.10.2011, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Ну да, хотя думаю есть какой то более изящный способ))


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.