Мне нужно знать, как получить экземпляр владельца TableAdapter
, если у меня есть только Table Adapter
.Доступ к экземпляру переменной
Так, например, есть этот класс:
public class example
{
public User _user;
public TableAdapter _adapter;
someMethods();
.
.
.
}
Я работаю с аспектно-ориентированной рамочной PostSharp. Для целей ведения журнала у меня есть класс ведения журнала с методом, который запускается при вызове метода get_Adapter. Итак, в моем классе регистрации я получил аргумент TableAdapter
. В конце концов, мне нужен объект User.
К сожалению, я ничего не могу изменить в дизайне класса, который мне нужен, поэтому все, что у меня есть, это TableAdapter
. Мой класс ведения журнала выглядит следующим образом (упрощенное):
public class logger
{
public override void OnExit(MethodExecutionArgs args)
{
TableAdapter = (TableAdapter)args.Instance;
//here I need the example object in order to get the current user object
}
}
Есть ли способ сделать это? Может быть, отражение? Что-нибудь?
Благодарим за помощь.
О, кстати, я работаю с C# и WinForms.
Значит, вы также не можете изменить «TableAdapter»? – Marnix
К сожалению, нет. Я попытался максимально упростить мой вопрос. Реальный сценарий: в системе я работаю, класс класса, который содержит пользователя, является базовым классом из нескольких десятков классов - все эти классы используют один или несколько табличных адаптеров. Поэтому мне пришлось бы менять более 100 адаптеров стола. – TheNewGuy
@ TheNewGuy Я не верю, что ваше задание возможно. Я бы предложил, пока вы должны пойти и изменить все эти адаптеры таблицы, перефразируйте код в правильную многоуровневую архитектуру, чтобы вы могли избежать этих проблем в будущем. – asawyer