0

Postsharp を使用してメソッド呼び出しをログに記録していますが、パラメーター値もログに記録する必要があります。私の問題は、汎用リストであるパラメーターがあり、リストを反復処理してその値を取得できない場合に発生します。

パラメータがリストかどうかを確認する方法は知っていますが、その中の値を読み取ることができません...

リストを読むことは可能ですか?どうすればこれを行うことができますか?

for (int i = 0; i < args.Arguments.Count; i++)
            {
                if (methodName == "LogonUser" && i == 1)
                {
                    sb.Append(",********");
                    break;
                }
                else if (i > 0)
                {
                    sb.Append(", ");
                }

                if (args.Arguments[i] is IList && args.Arguments[i].GetType().IsGenericType)
                {

                   //here is where i need to read through the list


                }
                sb.Append(args.Arguments.GetArgument(i) ?? "null");




            }
4

1 に答える 1

1

引数のみを反復処理する場合は、(ジェネリック) リストの場合、IEnumerable インターフェイスを実装しているかどうかを引数で確認し、foreach ステートメントを使用してリスト内の値をループします。

IEnumerable argumentList = args.Arguments[i] as IEnumerable;

if (argumentList != null) {
  foreach(var item in argumentList){
    // Do what you want with the item
  }
}
于 2012-06-15T10:54:19.387 に答える