Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / TypeLoadException.cs / 1 / 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.CompilerServices;
using System.Security.Permissions;
[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
{
get {
SetMessageField();
return _message;
}
}
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");
_message = String.Format(CultureInfo.CurrentCulture, GetTypeLoadExceptionMessage(ResourceId), ClassName, AssemblyName, MessageArg);
}
}
}
public String TypeName
{
get {
if (ClassName == null)
return String.Empty;
return ClassName;
}
}
// This is called from inside the EE.
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();
}
protected TypeLoadException(SerializationInfo info, StreamingContext context) : base(info, context) {
if (info == null)
throw new ArgumentNullException("info");
ClassName = info.GetString("TypeLoadClassName");
AssemblyName = info.GetString("TypeLoadAssemblyName");
MessageArg = info.GetString("TypeLoadMessageArg");
ResourceId = info.GetInt32("TypeLoadResourceID");
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern String GetTypeLoadExceptionMessage(int resourceId);
//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.
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
if (info == null)
throw new ArgumentNullException("info");
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.
// ==++==
//
// 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.CompilerServices;
using System.Security.Permissions;
[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
{
get {
SetMessageField();
return _message;
}
}
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");
_message = String.Format(CultureInfo.CurrentCulture, GetTypeLoadExceptionMessage(ResourceId), ClassName, AssemblyName, MessageArg);
}
}
}
public String TypeName
{
get {
if (ClassName == null)
return String.Empty;
return ClassName;
}
}
// This is called from inside the EE.
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();
}
protected TypeLoadException(SerializationInfo info, StreamingContext context) : base(info, context) {
if (info == null)
throw new ArgumentNullException("info");
ClassName = info.GetString("TypeLoadClassName");
AssemblyName = info.GetString("TypeLoadAssemblyName");
MessageArg = info.GetString("TypeLoadMessageArg");
ResourceId = info.GetInt32("TypeLoadResourceID");
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern String GetTypeLoadExceptionMessage(int resourceId);
//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.
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
if (info == null)
throw new ArgumentNullException("info");
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
- CodeValidator.cs
- DataGridViewElement.cs
- SqlXmlStorage.cs
- XmlSchemaObject.cs
- ControlType.cs
- StateBag.cs
- TemplateApplicationHelper.cs
- IteratorFilter.cs
- WebReferencesBuildProvider.cs
- DbBuffer.cs
- VirtualPathProvider.cs
- MsmqIntegrationBinding.cs
- OutOfProcStateClientManager.cs
- XamlGridLengthSerializer.cs
- CompilationSection.cs
- DataObjectEventArgs.cs
- TextMarkerSource.cs
- WebPartCancelEventArgs.cs
- ValidationSummary.cs
- AmbientLight.cs
- BrowserCapabilitiesFactoryBase.cs
- DurableTimerExtension.cs
- SettingsBase.cs
- PathFigureCollectionConverter.cs
- TextureBrush.cs
- UnsignedPublishLicense.cs
- SetIterators.cs
- SchemaImporterExtension.cs
- TextBoxRenderer.cs
- QueryTask.cs
- DescendantBaseQuery.cs
- SqlNodeTypeOperators.cs
- ProjectionCamera.cs
- PointValueSerializer.cs
- Size.cs
- basecomparevalidator.cs
- WebPageTraceListener.cs
- StaticResourceExtension.cs
- documentsequencetextpointer.cs
- VerificationAttribute.cs
- PropertyDescriptorCollection.cs
- PropertyGrid.cs
- MemberMaps.cs
- SafeEventLogWriteHandle.cs
- CheckBoxRenderer.cs
- TypeSource.cs
- StreamResourceInfo.cs
- IntSecurity.cs
- PrintPreviewControl.cs
- FormViewCommandEventArgs.cs
- C14NUtil.cs
- OdbcEnvironmentHandle.cs
- TileBrush.cs
- AmbientValueAttribute.cs
- GeometryConverter.cs
- Stacktrace.cs
- XmlnsCache.cs
- GrammarBuilderDictation.cs
- SendContent.cs
- UnmanagedMarshal.cs
- StringDictionaryEditor.cs
- CodeStatementCollection.cs
- DNS.cs
- AutoGeneratedFieldProperties.cs
- RuleConditionDialog.Designer.cs
- XmlDictionaryString.cs
- Model3DCollection.cs
- CompoundFileStreamReference.cs
- ContainerVisual.cs
- LightweightEntityWrapper.cs
- DataRow.cs
- ItemDragEvent.cs
- ObjectTypeMapping.cs
- WebServicesSection.cs
- TileBrush.cs
- TemplatedWizardStep.cs
- HttpDebugHandler.cs
- FastPropertyAccessor.cs
- RemotingServices.cs
- MemberDomainMap.cs
- CheckBoxFlatAdapter.cs
- StandardToolWindows.cs
- DatatypeImplementation.cs
- DropShadowEffect.cs
- RequestContextBase.cs
- ISAPIRuntime.cs
- TextServicesPropertyRanges.cs
- TreeViewBindingsEditorForm.cs
- XPathNodeIterator.cs
- SimpleWebHandlerParser.cs
- UIPermission.cs
- CodeCompiler.cs
- ipaddressinformationcollection.cs
- HandlerMappingMemo.cs
- __TransparentProxy.cs
- KeyValuePairs.cs
- SubclassTypeValidator.cs
- XmlSchemaSimpleType.cs
- ProcessModelInfo.cs
- ISessionStateStore.cs