我認爲,這是由串行無效XML拋出的異常是有型的內部異常的一個InvalidOperationException System.Runtime.Serialization.SerializationException
如果發現這種情況,可以做所需的錯誤特定處理。例如:
public bool HandleError(Exception error)
{
string output = "Unknown error";
if (error.InnerException is System.Runtime.Serialization.SerializationException)
{
output = "Malformed message";
}
TraceSource traceSource = new TraceSource("YourTraceSource");
traceSource.TraceEvent(TraceEventType.Error, 0, output);
return false;
}
或者
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
if (error.InnerException is System.Runtime.Serialization.SerializationException)
{
//set malformed message status code (400?)
}
else
{
//set other status code
}
...
}
你能區分使用內部異常?希望串行器異常有一些更具體的內部異常,可以幫助你? –