1
我們在反序列化異常時遇到了問題。我完全意識到,通過網絡發送異常是一種不好的做法,但目前的設置要求我們的系統集成工作。使用二進制格式化程序進行反序列化後Exception.TargetSite爲空
服務器系統是一個.NET 4 WCF服務和呼叫方是一個.NET 2調用使用標準的網絡參考0.4。
服務器端只需序列化異常,並在一個Base64編碼字符串它。
var formatter = new BinaryFormatter();
var mem = new MemoryStream();
formatter.Serialize(mem, ex);
EncodedException = Convert.ToBase64String(mem.ToArray());
在接收端
var formatter = new BinaryFormatter();
messageChannel.ServerException = (Exception)
formatter.Deserialize(new MemoryStream(Convert.FromBase64String(base64string)));
所有有除了TargetSite。
任何提示是不勝感激。
感謝
約翰