diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2017-04-13 14:17:19 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2017-04-13 14:17:19 +0900 |
commit | a56e30c8d33048216567753d9d3fefc2152af8ac (patch) | |
tree | 7e5d979695fc4a431740982eb1cfecc2898b23a5 /src/mscorlib/shared/System/IO/FileLoadException.cs | |
parent | 4b11dc566a5bbfa1378d6266525c281b028abcc8 (diff) | |
download | coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.gz coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.bz2 coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.zip |
Imported Upstream version 2.0.0.11353upstream/2.0.0.11353
Diffstat (limited to 'src/mscorlib/shared/System/IO/FileLoadException.cs')
-rw-r--r-- | src/mscorlib/shared/System/IO/FileLoadException.cs | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/mscorlib/shared/System/IO/FileLoadException.cs b/src/mscorlib/shared/System/IO/FileLoadException.cs new file mode 100644 index 0000000000..b5e197c143 --- /dev/null +++ b/src/mscorlib/shared/System/IO/FileLoadException.cs @@ -0,0 +1,102 @@ +// 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. + +using System.Runtime.Serialization; + +namespace System.IO +{ + [Serializable] + public partial class FileLoadException : IOException + { + public FileLoadException() + : base(SR.IO_FileLoad) + { + HResult = __HResults.COR_E_FILELOAD; + } + + public FileLoadException(string message) + : base(message) + { + HResult = __HResults.COR_E_FILELOAD; + } + + public FileLoadException(string message, Exception inner) + : base(message, inner) + { + HResult = __HResults.COR_E_FILELOAD; + } + + public FileLoadException(string message, string fileName) : base(message) + { + HResult = __HResults.COR_E_FILELOAD; + FileName = fileName; + } + + public FileLoadException(string message, string fileName, Exception inner) + : base(message, inner) + { + HResult = __HResults.COR_E_FILELOAD; + FileName = fileName; + } + + public override string Message + { + get + { + if (_message == null) + { + _message = FormatFileLoadExceptionMessage(FileName, HResult); + } + return _message; + } + } + + public string FileName { get; } + public string FusionLog { get; } + + public override string ToString() + { + string s = GetType().ToString() + ": " + Message; + + if (FileName != null && FileName.Length != 0) + s += Environment.NewLine + SR.Format(SR.IO_FileName_Name, FileName); + + if (InnerException != null) + s = s + " ---> " + InnerException.ToString(); + + if (StackTrace != null) + s += Environment.NewLine + StackTrace; + + if (FusionLog != null) + { + if (s == null) + s = " "; + s += Environment.NewLine; + s += Environment.NewLine; + s += FusionLog; + } + + return s; + } + + protected FileLoadException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + // Base class constructor will check info != null. + + FileName = info.GetString("FileLoad_FileName"); + FusionLog = info.GetString("FileLoad_FusionLog"); + } + + public override void GetObjectData(SerializationInfo info, StreamingContext context) + { + // Serialize data for our base classes. base will verify info != null. + base.GetObjectData(info, context); + + // Serialize data for this class + info.AddValue("FileLoad_FileName", FileName, typeof(string)); + info.AddValue("FileLoad_FusionLog", FusionLog, typeof(string)); + } + } +} |