Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- AuthorizationRule.cs
- ObjectMemberMapping.cs
- ComNativeDescriptor.cs
- SymmetricKey.cs
- AlphaSortedEnumConverter.cs
- TiffBitmapDecoder.cs
- SafeLibraryHandle.cs
- NameSpaceExtractor.cs
- SmtpSection.cs
- CompilerState.cs
- ObjectDataSourceChooseTypePanel.cs
- CompModSwitches.cs
- Privilege.cs
- QueryStringHandler.cs
- BaseParser.cs
- ModelVisual3D.cs
- FrameDimension.cs
- DivideByZeroException.cs
- InfoCardKeyedHashAlgorithm.cs
- FaultCode.cs
- PartitionedStream.cs
- DispatcherFrame.cs
- Geometry.cs
- ByteConverter.cs
- DeflateStreamAsyncResult.cs
- EdmSchemaError.cs
- StructuralComparisons.cs
- PrefixQName.cs
- SecUtil.cs
- ChameleonKey.cs
- TextSyndicationContentKindHelper.cs
- PenThreadWorker.cs
- HostingEnvironmentSection.cs
- DataGridViewMethods.cs
- BinaryFormatter.cs
- HttpCacheVary.cs
- Baml6ConstructorInfo.cs
- RoleManagerSection.cs
- GeneralTransform3DTo2D.cs
- XmlNamespaceDeclarationsAttribute.cs
- InvalidOperationException.cs
- Win32Native.cs
- ServiceEndpointElementCollection.cs
- _ProxyRegBlob.cs
- DrawingAttributesDefaultValueFactory.cs
- MemoryStream.cs
- CssClassPropertyAttribute.cs
- ErrorInfoXmlDocument.cs
- thaishape.cs
- Descriptor.cs
- PixelFormatConverter.cs
- TextAutomationPeer.cs
- HttpDictionary.cs
- VirtualPathUtility.cs
- ComplexObject.cs
- webclient.cs
- HttpCacheVaryByContentEncodings.cs
- SequentialActivityDesigner.cs
- QueryOptionExpression.cs
- invalidudtexception.cs
- ResourceContainer.cs
- OrderedParallelQuery.cs
- PipelineModuleStepContainer.cs
- XmlSchemaObjectCollection.cs
- DataSourceProvider.cs
- EventSource.cs
- StorageComplexPropertyMapping.cs
- ColorBlend.cs
- CapiSafeHandles.cs
- ObjectConverter.cs
- ToolStripHighContrastRenderer.cs
- DbConnectionFactory.cs
- Graphics.cs
- SQLInt64.cs
- HitTestParameters3D.cs
- OperatingSystem.cs
- ByteFacetDescriptionElement.cs
- NativeMethods.cs
- Internal.cs
- IApplicationTrustManager.cs
- StreamSecurityUpgradeAcceptor.cs
- XmlSchemaGroup.cs
- WebRequest.cs
- PropertyChangedEventManager.cs
- TemplateControlParser.cs
- StorageMappingItemCollection.cs
- StoreAnnotationsMap.cs
- StringWriter.cs
- ButtonBaseAutomationPeer.cs
- BaseEntityWrapper.cs
- mansign.cs
- UserControlCodeDomTreeGenerator.cs
- EntityDataSourceContextDisposingEventArgs.cs
- ExtendedPropertyDescriptor.cs
- ThousandthOfEmRealPoints.cs
- SafeSecurityHandles.cs
- WasAdminWrapper.cs
- EntityDataSourceViewSchema.cs
- ToolStripArrowRenderEventArgs.cs
- QuaternionAnimationUsingKeyFrames.cs