Как получить объект, который выполнил ряд методов, которые привели к методу выполнения в настоящее время [дублировать]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как получить объект, который выполнил ряд методов, которые привели к методу выполнения в настоящее время [дублировать]

Сообщение Anonymous »

Прости меня за абсолютно отвратительное название моего вопроса, но я имею в виду: есть класс A , который имеет метод ma , который выполняет метод mb из объекта класса B , затем этот метод (метод () выполняет mc из того же объекта, наконец, MC выполняет виртуальный метод MD из объекта класса C , который я переопределяется, с моим классом d .
в коде:
class A
{
B b;
void mA()
{
b.mB();
}
}

class B
{
public void mB()
{
mC();
}

D d;

void mC()
{
d.mD();
}
}

class C
{
public virtual void mD() { }
}

class D : C
{
public override void mD()
{
A a = // Somehow get the A object that executed this
}
}

Теперь, когда вы знаете очень запутанную ситуацию, не могли бы вы рассказать мне, как я бы получил объект A от md ? (Я имею в виду объект, а не класс, а не метод).
Просто чтобы быть уверенным: объект означает экземпляр класса, а не функцию, содержащуюся в классе, а не просто имя этой функции. Таким образом, это должно быть решено каким -то другим способом, я предполагаю, что через некоторые рефлексии махинации, с которыми я в порядке. Я просто снова наткнулся на этот вопрос и стал любопытным относительно того, на самом деле это даже возможно,
Я знаю, что StackTrace содержит информацию о предыдущих вызовах методов, но я не могу найти какого -либо показания фактического объекта, связанного с ними в определении стекафрама
Я угадываю, что это невозможно, но если я хочу, чтобы я знал.>

Подробнее здесь: https://stackoverflow.com/questions/733 ... he-current
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»