0

アプリケーションの 1 つで、このエラー ログの方法を見つけました。

実際にエラーを記録している場所はどこですか?

エラーログ呼び出し

ErrorLog oLogError = new ErrorLog();
oLogError.ErrorInfo[3] = ex.Message;
oLogError.ErrorInfo[4] = ex.StackTrace;
oService.LogError(oLogError.ErrorInfo);
oService.Dispose();

oService.LogError(); の定義

[System.Web.Services.Protocols.SoapDocumentMethodAttribute
    ("http://tempuri.org/LogError", RequestNamespace="http://tempuri.org/",                     ResponseNamespace="http://tempuri.org/",                            Use=System.Web.Services.Description.SoapBindingUse.Literal,                 ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public void LogError(string[] errorInfo) {
        this.Invoke("LogError", new object[] {
                    errorInfo});
}
4

2 に答える 2

0

「LogError」文字列が何を意味するのかよくわかりませんthis.Invoke("LogError", new object[]。理想的には、文字列ではなくメソッド名である必要があります。

正しい定義

public Object Invoke(
    Delegate method,
    params Object[] args
)

基本的に、配列のエラー情報をキャプチャしています。次に、Logerror メソッドに渡されます。メソッドの inturn は、invoke メソッドを呼び出します。

Invoke は、2 番目のパラメーターとして渡されたオブジェクトの配列を使用して、デリゲート (メソッド名である必要がある最初のパラメーター) として指定されたメソッドを実行しますerrorInfo。実行は、コントロールが所有するスレッドで行われます。

于 2012-10-31T08:19:17.120 に答える
0

これ:

  this.Invoke("LogError", new object[] {
                        errorInfo});

新しいオブジェクトです。このオブジェクトerrorInfoはエラーを受け取り、ログに記録します。

于 2012-10-31T07:58:34.993 に答える