Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- Ppl.cs
- DependencyPropertyChangedEventArgs.cs
- StyleModeStack.cs
- ProxyWebPartManager.cs
- RijndaelManagedTransform.cs
- FamilyTypefaceCollection.cs
- Constants.cs
- CqlWriter.cs
- ListBindingHelper.cs
- LayoutEvent.cs
- ScalarConstant.cs
- CannotUnloadAppDomainException.cs
- DataGridViewAccessibleObject.cs
- LabelEditEvent.cs
- ExponentialEase.cs
- ComponentRenameEvent.cs
- MobileUITypeEditor.cs
- EtwTrackingBehaviorElement.cs
- FileLevelControlBuilderAttribute.cs
- EditorPartCollection.cs
- SwitchExpression.cs
- DesignerSerializerAttribute.cs
- DesignBindingEditor.cs
- NetStream.cs
- MasterPage.cs
- IfElseDesigner.xaml.cs
- Wildcard.cs
- IndexObject.cs
- DataObjectSettingDataEventArgs.cs
- __ConsoleStream.cs
- SequentialUshortCollection.cs
- ITreeGenerator.cs
- recordstatescratchpad.cs
- AppSettingsExpressionBuilder.cs
- FontFamilyValueSerializer.cs
- RecognitionResult.cs
- Serializer.cs
- WebBaseEventKeyComparer.cs
- HtmlShimManager.cs
- Span.cs
- DNS.cs
- ClientFormsAuthenticationCredentials.cs
- SqlFileStream.cs
- SafeNativeMethods.cs
- WindowHideOrCloseTracker.cs
- FileSystemInfo.cs
- nulltextnavigator.cs
- NeutralResourcesLanguageAttribute.cs
- CompressionTracing.cs
- ClientRuntimeConfig.cs
- HwndTarget.cs
- TimeSpanValidator.cs
- CodeDomSerializerException.cs
- TextServicesManager.cs
- COM2PropertyBuilderUITypeEditor.cs
- TdsRecordBufferSetter.cs
- BamlReader.cs
- EtwTrackingBehavior.cs
- ColorContextHelper.cs
- ResourceReader.cs
- ActiveXHelper.cs
- EpmContentSerializer.cs
- PrePrepareMethodAttribute.cs
- FixedFindEngine.cs
- ProxyWebPartManager.cs
- MenuItem.cs
- MemoryStream.cs
- Error.cs
- SqlBulkCopyColumnMappingCollection.cs
- SqlDataSourceConfigureSortForm.cs
- CallbackValidatorAttribute.cs
- ObjectStateEntryDbDataRecord.cs
- Condition.cs
- XamlSerializationHelper.cs
- BaseParser.cs
- MediaScriptCommandRoutedEventArgs.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- cookie.cs
- LoginStatusDesigner.cs
- LineGeometry.cs
- FastPropertyAccessor.cs
- ModelPerspective.cs
- ConfigXmlSignificantWhitespace.cs
- UserPreferenceChangingEventArgs.cs
- BasicExpandProvider.cs
- TextMarkerSource.cs
- BulletedList.cs
- ToolStripItemImageRenderEventArgs.cs
- IPEndPointCollection.cs
- ExecutionContext.cs
- RuleInfoComparer.cs
- Clipboard.cs
- GeometryDrawing.cs
- DynamicUpdateCommand.cs
- ParentQuery.cs
- LocalBuilder.cs
- PropertyExpression.cs
- HandleCollector.cs
- ListChangedEventArgs.cs
- ListViewItemEventArgs.cs