Доступ к объекту типа для статических членов
От: Emstem  
Дата: 01.04.03 12:43
Оценка: 7 (1)
Как получить доступ к объекту типа класса из статического метода (то есть, что-то вроде typeof(this))?
Re: Доступ к объекту типа для статических членов
От: orangy Россия
Дата: 01.04.03 12:48
Оценка:
Здравствуйте, Emstem, Вы писали:

E>Как получить доступ к объекту типа класса из статического метода (то есть, что-то вроде typeof(this))?

Можно попробовать через StackFrame (просто идея)
... << RSDN@Home 1.0 beta 6a | Сейчас вторник, 19:04, слушаю тишину >>
"Develop with pleasure!"
Re[2]: Доступ к объекту типа для статических членов
От: orangy Россия
Дата: 01.04.03 12:51
Оценка: 12 (2)
Здравствуйте, orangy, Вы писали:

O>Здравствуйте, Emstem, Вы писали:


E>>Как получить доступ к объекту типа класса из статического метода (то есть, что-то вроде typeof(this))?

O>Можно попробовать через StackFrame (просто идея)

Примерно так, код не проверен:
StackTrace st = new StackTrace();
MethodBase mb = st.GetFrame(0).GetMethod();
Type t = mb.ReflectedType;
... << RSDN@Home 1.0 beta 6a | Сейчас вторник, 19:04, слушаю тишину >>
"Develop with pleasure!"
Re: Доступ к объекту типа для статических членов
От: Lloyd Россия  
Дата: 01.04.03 12:55
Оценка: 9 (2)
Здравствуйте, Emstem, Вы писали:

E>Как получить доступ к объекту типа класса из статического метода (то есть, что-то вроде typeof(this))?


Как вариант можно вот так:

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
Re[2]: Доступ к объекту типа для статических членов
От: Emstem  
Дата: 01.04.03 13:02
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, Emstem, Вы писали:


E>>Как получить доступ к объекту типа класса из статического метода (то есть, что-то вроде typeof(this))?


L>Как вариант можно вот так:


L>
L>System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
L>


Да, спасибо, это то, что нужно.
Re: Доступ к объекту типа для статических членов
От: mihailik Украина  
Дата: 01.04.03 16:15
Оценка:
E>Как получить доступ к объекту типа класса из статического метода (то есть, что-то вроде typeof(this))?

Работает, но медленно:
new System.Diagnostics.StackFrame().GetMethod().DeclaringType


Лучше вызывать один раз и потом использовать, бо тормозит.
... << RSDN@Home 1.0 beta 6a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.