first commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace UnityEngine.UI.Tests.Utils
|
||||
{
|
||||
class ExceptionUtils
|
||||
{
|
||||
public static void PreserveStackTrace(Exception e)
|
||||
{
|
||||
var ctx = new StreamingContext(StreamingContextStates.CrossAppDomain);
|
||||
var mgr = new ObjectManager(null, ctx);
|
||||
var si = new SerializationInfo(e.GetType(), new FormatterConverter());
|
||||
|
||||
e.GetObjectData(si, ctx);
|
||||
mgr.RegisterObject(e, 1, si); // prepare for SetObjectData
|
||||
mgr.DoFixups(); // ObjectManager calls SetObjectData
|
||||
|
||||
// voila, e is unmodified save for _remoteStackTraceString
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user