Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / TypeLoadException.cs / 1305376 / TypeLoadException.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*==============================================================================
**
** Class: TypeLoadException
**
**
** Purpose: The exception class for type loading failures.
**
**
=============================================================================*/
namespace System {
using System;
using System.Globalization;
using System.Runtime.Remoting;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Diagnostics.Contracts;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeLoadException : SystemException, ISerializable {
public TypeLoadException()
: base(Environment.GetResourceString("Arg_TypeLoadException")) {
SetErrorCode(__HResults.COR_E_TYPELOAD);
}
public TypeLoadException(String message)
: base(message) {
SetErrorCode(__HResults.COR_E_TYPELOAD);
}
public TypeLoadException(String message, Exception inner)
: base(message, inner) {
SetErrorCode(__HResults.COR_E_TYPELOAD);
}
public override String Message
{
[System.Security.SecuritySafeCritical] // auto-generated
get {
SetMessageField();
return _message;
}
}
[System.Security.SecurityCritical] // auto-generated
private void SetMessageField()
{
if (_message == null) {
if ((ClassName == null) &&
(ResourceId == 0))
_message = Environment.GetResourceString("Arg_TypeLoadException");
else {
if (AssemblyName == null)
AssemblyName = Environment.GetResourceString("IO_UnknownFileName");
if (ClassName == null)
ClassName = Environment.GetResourceString("IO_UnknownFileName");
String format = null;
GetTypeLoadExceptionMessage(ResourceId, JitHelpers.GetStringHandleOnStack(ref format));
_message = String.Format(CultureInfo.CurrentCulture, format, ClassName, AssemblyName, MessageArg);
}
}
}
public String TypeName
{
get {
if (ClassName == null)
return String.Empty;
return ClassName;
}
}
// This is called from inside the EE.
[System.Security.SecurityCritical] // auto-generated
private TypeLoadException(String className,
String assemblyName,
String messageArg,
int resourceId)
: base(null)
{
SetErrorCode(__HResults.COR_E_TYPELOAD);
ClassName = className;
AssemblyName = assemblyName;
MessageArg = messageArg;
ResourceId = resourceId;
// Set the _message field eagerly; debuggers look at this field to
// display error info. They don't call the Message property.
SetMessageField();
}
[System.Security.SecuritySafeCritical] // auto-generated
protected TypeLoadException(SerializationInfo info, StreamingContext context) : base(info, context) {
if (info == null)
throw new ArgumentNullException("info");
Contract.EndContractBlock();
ClassName = info.GetString("TypeLoadClassName");
AssemblyName = info.GetString("TypeLoadAssemblyName");
MessageArg = info.GetString("TypeLoadMessageArg");
ResourceId = info.GetInt32("TypeLoadResourceID");
}
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
[SuppressUnmanagedCodeSecurity]
private static extern void GetTypeLoadExceptionMessage(int resourceId, StringHandleOnStack retString);
//We can rely on the serialization mechanism on Exception to handle most of our needs, but
//we need to add a few fields of our own.
[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("TypeLoadClassName", ClassName, typeof(String));
info.AddValue("TypeLoadAssemblyName", AssemblyName, typeof(String));
info.AddValue("TypeLoadMessageArg", MessageArg, typeof(String));
info.AddValue("TypeLoadResourceID", ResourceId);
}
// If ClassName != null, GetMessage will construct on the fly using it
// and ResourceId (mscorrc.dll). This allows customization of the
// class name format depending on the language environment.
private String ClassName;
private String AssemblyName;
private String MessageArg;
internal int ResourceId;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SendMailErrorEventArgs.cs
- CallbackValidator.cs
- ObjectDataSourceEventArgs.cs
- ZipIORawDataFileBlock.cs
- UrlPropertyAttribute.cs
- InputScopeNameConverter.cs
- LocalFileSettingsProvider.cs
- EntitySqlException.cs
- ThreadExceptionDialog.cs
- CornerRadius.cs
- RegistryKey.cs
- ToolboxItemAttribute.cs
- SignedXml.cs
- StandardCommands.cs
- AutoGeneratedField.cs
- TemplateControlParser.cs
- NonNullItemCollection.cs
- HeaderUtility.cs
- ModelFunction.cs
- MessageBuilder.cs
- Configuration.cs
- Button.cs
- InputLangChangeEvent.cs
- ConfigurationManagerHelper.cs
- CssClassPropertyAttribute.cs
- PenThreadWorker.cs
- DigitShape.cs
- WebControlAdapter.cs
- MachineKeyConverter.cs
- ApplicationServiceManager.cs
- InvokeWebServiceDesigner.cs
- WebPartConnection.cs
- DictionaryCustomTypeDescriptor.cs
- DeleteIndexBinder.cs
- NameValueConfigurationElement.cs
- SimpleType.cs
- Line.cs
- TableProviderWrapper.cs
- MultiTouchSystemGestureLogic.cs
- Point4DConverter.cs
- RowType.cs
- SortExpressionBuilder.cs
- ModuleElement.cs
- ImageUrlEditor.cs
- SoapInteropTypes.cs
- TreeView.cs
- FixedSOMElement.cs
- CompiledRegexRunner.cs
- RadioButton.cs
- MenuTracker.cs
- Utils.cs
- SecurityContext.cs
- NoneExcludedImageIndexConverter.cs
- ToolStripItemRenderEventArgs.cs
- CommandID.cs
- FormConverter.cs
- ParentQuery.cs
- PeerReferralPolicy.cs
- ThreadTrace.cs
- CompositionAdorner.cs
- ToolStripDropTargetManager.cs
- MainMenu.cs
- DirectoryObjectSecurity.cs
- BindingFormattingDialog.cs
- AssociationProvider.cs
- DirectoryGroupQuery.cs
- Console.cs
- DtdParser.cs
- MyContact.cs
- LogRestartAreaEnumerator.cs
- AmbientProperties.cs
- DefaultMemberAttribute.cs
- TransformConverter.cs
- MonitoringDescriptionAttribute.cs
- PerformanceCounterCategory.cs
- DataGridViewAdvancedBorderStyle.cs
- StringAttributeCollection.cs
- RelatedImageListAttribute.cs
- EditorAttribute.cs
- RegexGroup.cs
- XmlLanguage.cs
- ConditionValidator.cs
- WindowsGrip.cs
- ImpersonateTokenRef.cs
- StorageEntitySetMapping.cs
- DrawingDrawingContext.cs
- DataSetUtil.cs
- FixedSOMTableRow.cs
- AppliesToBehaviorDecisionTable.cs
- MatrixTransform3D.cs
- InvalidDataException.cs
- ArglessEventHandlerProxy.cs
- DetailsViewUpdatedEventArgs.cs
- GridView.cs
- ImagingCache.cs
- CursorConverter.cs
- MetafileHeaderWmf.cs
- ValidationResult.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- MarkupCompilePass2.cs