0
WCFサービスのすべての要求に対してすべてのパラメータを記録しようとしています。これは私が使用する "IParameterInspector"を実装し、これまでのところ動作します。出力とIParameterInspector(WCF)のコンテキスト情報へのアクセス
public class ParameterInspector_for_RequestLogging : IParameterInspector
{
#region IParameterInspector Members
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState) {
//Note: correlationState contains an object with contains the inputValues
//...
log.WriteEntry(
new LogData(
String.Format(" Req={0}, Time: {1}ms, Input-Parameter: '{2}', Output-Parameter: '{3}', ReturnValue: '{4}'"
, operationName
, Environment.TickCount - correlationStateData.RequestStartAt
, String.Join("','", inputParameter.ToArray())
, String.Join("','", outputParameter.ToArray())
, returnValue.ToString()
)
)
);
}
}
:
Req=ABC, Time: 500ms, Input-Parameter: '123,ABC,zzz,55', Output-Parameter: '0', ReturnValue: '0'"
だから私は2つの問題を抱えています。 1.入力パラメータと出力パラメータの正しい名前をどのように見つけることができますか。 2.コンテキスト情報を貼り付けるにはどうすればよいですか/コンテキスト情報にどうやってアクセスできますか?
User: CurrentUser (UserNumber) - Req=ABC, Time: 500ms
, Input-Parameter: '<int32>para1: 123, <string>Para2: ABC
,<string>Para3: zzz, <ref byte>Para4: 55'
, Output-Parameter: '<byte> 0', ReturnValue: '<Int64> 0'"