1

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を使用しています。

4

1 に答える 1

0

Postsharpに関する限り、追加のアスペクトやtableadapterインスタンスへの挿入、そのホストクラスへの参照など、ある種の仲介なしではアクセスできません。

スタックをたどって、そのように取得しようとすることができます。

于 2012-05-07T12:55:00.127 に答える