Add project files.
This commit is contained in:
43
Compat.Private.Serialization/Compat/Fx.cs
Normal file
43
Compat.Private.Serialization/Compat/Fx.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Compat
|
||||
{
|
||||
internal class Fx
|
||||
{
|
||||
public static void Assert(string message)
|
||||
{
|
||||
Debug.Assert(false, message);
|
||||
}
|
||||
|
||||
public static void Assert(bool condition, string message)
|
||||
{
|
||||
Debug.Assert(condition, message);
|
||||
}
|
||||
|
||||
public static bool IsFatal(Exception ex)
|
||||
{
|
||||
ex = Unwrap(ex);
|
||||
|
||||
return ex is NullReferenceException ||
|
||||
ex is StackOverflowException ||
|
||||
ex is OutOfMemoryException ||
|
||||
ex is System.Threading.ThreadAbortException ||
|
||||
ex is System.Runtime.InteropServices.SEHException ||
|
||||
ex is System.Security.SecurityException;
|
||||
}
|
||||
|
||||
internal static Exception Unwrap(Exception ex)
|
||||
{
|
||||
// for certain types of exceptions, we care more about the inner
|
||||
// exception
|
||||
while (ex.InnerException != null &&
|
||||
(ex is System.Reflection.TargetInvocationException))
|
||||
{
|
||||
ex = ex.InnerException;
|
||||
}
|
||||
|
||||
return ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user