我在其中一个应用程序中发现了这种错误记录方式。
实际记录错误的位置在哪里?
错误日志调用
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});
}
答案 0 :(得分:0)
此:
this.Invoke("LogError", new object[] {
errorInfo});
新建一个对象,此对象会收到您的errorInfo
并记录错误。
答案 1 :(得分:0)
我不确定你的" LogError" this.Invoke("LogError", new object[]
中的字符串均值。理想情况下,它应该是方法名称而不是字符串。
public Object Invoke(
Delegate method,
params Object[] args
)
您基本上是在数组上捕获错误信息。然后将其传递给Logerror方法。方法inturn调用invoke方法。
Invoke使用作为第二个参数errorInfo
传递的对象数组执行指定为委托的方法(第一个应该是方法名的参数)。并且执行发生在控件拥有的线程上。