0

我在其中一个应用程序中发现了这种错误记录方式。

它实际上在哪里记录错误?

错误日志调用

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

这:

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

新建一个对象,该对象接收您errorInfo并记录错误。

于 2012-10-31T07:58:34.993 回答
0

我不太确定您的“LogError”字符串在 . 中的含义是什么。this.Invoke("LogError", new object[]理想情况下,它应该是方法名称而不是字符串。

正确定义

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

您基本上是在捕获数组上的错误信息。然后将其传递给 Logerror 方法。方法反过来调用调用方法。

Invoke 使用作为第二个参数传递的对象数组执行指定为委托的方法(第一个参数应该是方法名称)errorInfo。执行发生在控件拥有的线程上。

于 2012-10-31T08:19:17.120 回答