Предположим, что я получил родительский класс и класс ребенка:Получение имени объявляющего класса?
public abstract class Parent
{
public string GetParentName()
{
return GetType().Name;
}
}
public class Child : Parent
{
public string GetChildName()
{
return GetType().Name;
}
}
Как тока, как GetParentName() и GetChildName() вернется ребенка.
Однако в моем сценарии я хотел бы получить имя класса, в котором объявлен метод.
Таким образом GetChildName() должен вернуть ребенка но GetParentName() должен вернуть Родитель.
Это возможно любым способом?
ПРИМЕЧАНИЕ.
Я понимаю, что я мог бы использовать GetType() BaseType.Name но это не будет работать, так как иерархия может быть сложным.
'Я хотел бы получить имя класса, в котором метод declared' я имею в виду они представляют собой два различных метода,' GetChildName' * is * объявлено в дочернем элементе – Jonesopolis
Возможный дубликат [Как получить имя и тип вызывающего метода с использованием отражения?] (http://stackoverflow.com/questions/3095696/how-do-get-the-calling- method-name-and-type-using-reflection) – MethodMan
Вы можете просто вернуть «Родитель». Дайте нам пример, когда возвращение строки litteral не подходит. – Winter