Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CharEntityEncoderFallback.cs
- AllMembershipCondition.cs
- SoapObjectWriter.cs
- ErrorHandler.cs
- TemplateBaseAction.cs
- ModifyActivitiesPropertyDescriptor.cs
- OdbcParameterCollection.cs
- ToolStripDropDownMenu.cs
- WebCategoryAttribute.cs
- HyperLinkField.cs
- ListItem.cs
- SqlCrossApplyToCrossJoin.cs
- DataGridHelper.cs
- AspNetSynchronizationContext.cs
- XPathMultyIterator.cs
- SqlTypeConverter.cs
- DesignerDataTable.cs
- XmlLanguageConverter.cs
- PolicyLevel.cs
- QualifiedCellIdBoolean.cs
- PeerResolverBindingElement.cs
- HttpServerUtilityBase.cs
- StorageEntityTypeMapping.cs
- DataRecordInfo.cs
- TextServicesHost.cs
- LoadedEvent.cs
- WebControl.cs
- Rfc2898DeriveBytes.cs
- ObjectDataSourceSelectingEventArgs.cs
- ObjectSet.cs
- TabRenderer.cs
- SerialReceived.cs
- HwndPanningFeedback.cs
- TabControlCancelEvent.cs
- FileUtil.cs
- Base64Encoder.cs
- TableLayoutStyle.cs
- StringExpressionSet.cs
- PropertyEmitterBase.cs
- DropAnimation.xaml.cs
- WebDisplayNameAttribute.cs
- AppDomainAttributes.cs
- DataGridViewTextBoxCell.cs
- BoolExpressionVisitors.cs
- DeferredReference.cs
- SqlClientMetaDataCollectionNames.cs
- Object.cs
- WpfKnownMember.cs
- MouseActionValueSerializer.cs
- ProfileSection.cs
- DataServiceRequestOfT.cs
- WebPartDisplayModeEventArgs.cs
- AnnotationStore.cs
- ObjectDataSourceMethodEventArgs.cs
- InkPresenter.cs
- SqlNotificationRequest.cs
- SourceSwitch.cs
- QilXmlWriter.cs
- SpanIndex.cs
- TemplateNameScope.cs
- SafeRightsManagementPubHandle.cs
- AdRotator.cs
- XmlSchemaElement.cs
- PublisherMembershipCondition.cs
- BindingManagerDataErrorEventArgs.cs
- NavigateEvent.cs
- TextCompositionManager.cs
- SynchronizedDispatch.cs
- ObjectAnimationBase.cs
- XmlLoader.cs
- EntityConnectionStringBuilder.cs
- StrokeCollection.cs
- SystemResources.cs
- Menu.cs
- SerialStream.cs
- TableRowCollection.cs
- RequiredFieldValidator.cs
- ManualWorkflowSchedulerService.cs
- XamlReader.cs
- AuthenticationManager.cs
- BitmapDownload.cs
- HttpWebRequest.cs
- EdgeModeValidation.cs
- TextEditorContextMenu.cs
- UdpTransportBindingElement.cs
- StylusPoint.cs
- XomlCompilerResults.cs
- NameValueFileSectionHandler.cs
- ErrorWebPart.cs
- ProxyWebPartManager.cs
- CompilationUnit.cs
- Pair.cs
- HandledMouseEvent.cs
- Int32Animation.cs
- RegisteredScript.cs
- userdatakeys.cs
- GB18030Encoding.cs
- TargetFrameworkAttribute.cs
- RankException.cs
- CompilerGeneratedAttribute.cs