diff options
Diffstat (limited to 'src/mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs')
-rw-r--r-- | src/mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs b/src/mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs new file mode 100644 index 0000000000..2751d61db7 --- /dev/null +++ b/src/mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================= +** +** +** +** Purpose: The exception class uses to wrap all non-CLS compliant exceptions. +** +** +=============================================================================*/ + +namespace System.Runtime.CompilerServices { + using System; + using System.Runtime.Serialization; + using System.Runtime.Remoting; + using System.Security.Permissions; + using System.Diagnostics.Contracts; + + [Serializable] + public sealed class RuntimeWrappedException : Exception + { + private RuntimeWrappedException(Object thrownObject) + : base(Environment.GetResourceString("RuntimeWrappedException")) { + SetErrorCode(System.__HResults.COR_E_RUNTIMEWRAPPED); + m_wrappedException = thrownObject; + } + + public Object WrappedException { + get { return m_wrappedException; } + } + + private Object m_wrappedException; + + [System.Security.SecurityCritical] // auto-generated_required + public override void GetObjectData(SerializationInfo info, StreamingContext context) { + if (info==null) { + throw new ArgumentNullException("info"); + } + Contract.EndContractBlock(); + base.GetObjectData(info, context); + info.AddValue("WrappedException", m_wrappedException, typeof(Object)); + } + + internal RuntimeWrappedException(SerializationInfo info, StreamingContext context) + : base(info, context) { + m_wrappedException = info.GetValue("WrappedException", typeof(Object)); + } + } +} + |