Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Versioning / MultitargetingHelpers.cs / 1305376 / MultitargetingHelpers.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: MultitargetingHelpers ** **[....] ** ** ** Purpose: Central repository for helpers supporting ** multitargeting, such as emitting the correct version numbers ** and assembly names. ** ** ===========================================================*/ namespace System.Runtime.Versioning { using System; using System.IO; using System.Text; using System.Diagnostics.Contracts; internal static class MultitargetingHelpers { // default type converter private static FuncdefaultConverter = (t) => t.AssemblyQualifiedName; // This method gets assembly info for the corresponding type. If the typeConverter // is provided it is used to get this information. internal static string GetAssemblyQualifiedName(Type type, Func converter) { string assemblyFullName = null; if (type != null) { if (converter != null) { try { assemblyFullName = converter(type); // } catch (Exception e) { if (IsSecurityOrCriticalException(e)) { throw; } } } if (assemblyFullName == null) { assemblyFullName = defaultConverter(type); } } return assemblyFullName; } private static bool IsCriticalException(Exception ex) { return ex is NullReferenceException || ex is StackOverflowException || ex is OutOfMemoryException || ex is System.Threading.ThreadAbortException || ex is IndexOutOfRangeException || ex is AccessViolationException; } private static bool IsSecurityOrCriticalException(Exception ex) { return (ex is System.Security.SecurityException) || IsCriticalException(ex); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: MultitargetingHelpers ** ** [....] ** ** ** Purpose: Central repository for helpers supporting ** multitargeting, such as emitting the correct version numbers ** and assembly names. ** ** ===========================================================*/ namespace System.Runtime.Versioning { using System; using System.IO; using System.Text; using System.Diagnostics.Contracts; internal static class MultitargetingHelpers { // default type converter private static FuncdefaultConverter = (t) => t.AssemblyQualifiedName; // This method gets assembly info for the corresponding type. If the typeConverter // is provided it is used to get this information. internal static string GetAssemblyQualifiedName(Type type, Func converter) { string assemblyFullName = null; if (type != null) { if (converter != null) { try { assemblyFullName = converter(type); // } catch (Exception e) { if (IsSecurityOrCriticalException(e)) { throw; } } } if (assemblyFullName == null) { assemblyFullName = defaultConverter(type); } } return assemblyFullName; } private static bool IsCriticalException(Exception ex) { return ex is NullReferenceException || ex is StackOverflowException || ex is OutOfMemoryException || ex is System.Threading.ThreadAbortException || ex is IndexOutOfRangeException || ex is AccessViolationException; } private static bool IsSecurityOrCriticalException(Exception ex) { return (ex is System.Security.SecurityException) || IsCriticalException(ex); } } } // 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
- FormsAuthenticationUserCollection.cs
- ExecutorLocksHeldException.cs
- DetailsViewActionList.cs
- FrameworkPropertyMetadata.cs
- ListViewGroupItemCollection.cs
- TextServicesDisplayAttribute.cs
- SecureEnvironment.cs
- SerialErrors.cs
- Vector3DCollectionConverter.cs
- MetadataCache.cs
- CalendarData.cs
- TableCellCollection.cs
- ClientSponsor.cs
- Point3DAnimation.cs
- RecordManager.cs
- CodeArrayCreateExpression.cs
- NumberAction.cs
- SiteMembershipCondition.cs
- DodSequenceMerge.cs
- FileReservationCollection.cs
- PackagingUtilities.cs
- MasterPageCodeDomTreeGenerator.cs
- XsdCachingReader.cs
- DataObjectSettingDataEventArgs.cs
- WebReferencesBuildProvider.cs
- ForceCopyBuildProvider.cs
- MDIWindowDialog.cs
- MobileErrorInfo.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ReachObjectContext.cs
- SystemColorTracker.cs
- QueryLifecycle.cs
- PageHandlerFactory.cs
- COM2FontConverter.cs
- LogicalMethodInfo.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- DataControlPagerLinkButton.cs
- ILGenerator.cs
- SpotLight.cs
- IODescriptionAttribute.cs
- regiisutil.cs
- DispatcherObject.cs
- CodeArrayCreateExpression.cs
- CodeAccessPermission.cs
- RTLAwareMessageBox.cs
- WinEventTracker.cs
- DependencyObjectPropertyDescriptor.cs
- _TLSstream.cs
- XmlStreamStore.cs
- WebPartCloseVerb.cs
- WebPartMinimizeVerb.cs
- ProcessHostConfigUtils.cs
- DesignerView.cs
- JournalNavigationScope.cs
- ValueUtilsSmi.cs
- ResourceDescriptionAttribute.cs
- FacetEnabledSchemaElement.cs
- CloudCollection.cs
- WorkflowPageSetupDialog.cs
- SessionPageStateSection.cs
- DataFormats.cs
- PlatformNotSupportedException.cs
- StrokeCollectionConverter.cs
- ScrollChrome.cs
- PersonalizablePropertyEntry.cs
- RichTextBoxConstants.cs
- AnnotationStore.cs
- BaseHashHelper.cs
- Rotation3DKeyFrameCollection.cs
- ScrollChrome.cs
- XmlILIndex.cs
- GetWinFXPath.cs
- ByteStream.cs
- DemultiplexingClientMessageFormatter.cs
- TrackingProfileSerializer.cs
- UrlPropertyAttribute.cs
- DataTemplateKey.cs
- Visual.cs
- FramingEncoders.cs
- Normalization.cs
- GridProviderWrapper.cs
- MetadataException.cs
- CustomPopupPlacement.cs
- ToolStripContainer.cs
- DayRenderEvent.cs
- ScriptingScriptResourceHandlerSection.cs
- ApplicationDirectory.cs
- ToolStripDesigner.cs
- DataServiceQueryOfT.cs
- PathParser.cs
- ManualResetEvent.cs
- BufferedWebEventProvider.cs
- altserialization.cs
- Rotation3DAnimationBase.cs
- Pair.cs
- WebPartCatalogAddVerb.cs
- PopOutPanel.cs
- OleDbConnectionInternal.cs
- MenuScrollingVisibilityConverter.cs
- StickyNoteHelper.cs