Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Misc / MultitargetUtil.cs / 1305376 / MultitargetUtil.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Resources { using System; ////// Helper class supporting Multitarget type assembly qualified name resolution for ResX API. /// Note: this file is compiled into different assemblies (runtime and VSIP assemblies ...) /// internal static class MultitargetUtil { ////// This method gets assembly info for the corresponding type. If the delegate /// is provided it is used to get this information. /// public static string GetAssemblyQualifiedName(Type type, FunctypeNameConverter) { string assemblyQualifiedName = null; if (type != null) { if (typeNameConverter != null) { try { assemblyQualifiedName = typeNameConverter(type); } catch (Exception e) { if (IsSecurityOrCriticalException(e)) { throw; } } } if (string.IsNullOrEmpty(assemblyQualifiedName)) { assemblyQualifiedName = type.AssemblyQualifiedName; } } return assemblyQualifiedName; } // ExecutionEngineException is obsolete and shouldn't be used (to catch, throw or reference) anymore. // Pragma added to prevent converting the "type is obsolete" warning into build error. #pragma warning disable 618 private static bool IsSecurityOrCriticalException(Exception ex) { return ex is NullReferenceException || ex is StackOverflowException || ex is OutOfMemoryException || ex is System.Threading.ThreadAbortException || ex is ExecutionEngineException || ex is IndexOutOfRangeException || ex is AccessViolationException || ex is System.Security.SecurityException; } #pragma warning restore 618 } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Resources { using System; ////// Helper class supporting Multitarget type assembly qualified name resolution for ResX API. /// Note: this file is compiled into different assemblies (runtime and VSIP assemblies ...) /// internal static class MultitargetUtil { ////// This method gets assembly info for the corresponding type. If the delegate /// is provided it is used to get this information. /// public static string GetAssemblyQualifiedName(Type type, FunctypeNameConverter) { string assemblyQualifiedName = null; if (type != null) { if (typeNameConverter != null) { try { assemblyQualifiedName = typeNameConverter(type); } catch (Exception e) { if (IsSecurityOrCriticalException(e)) { throw; } } } if (string.IsNullOrEmpty(assemblyQualifiedName)) { assemblyQualifiedName = type.AssemblyQualifiedName; } } return assemblyQualifiedName; } // ExecutionEngineException is obsolete and shouldn't be used (to catch, throw or reference) anymore. // Pragma added to prevent converting the "type is obsolete" warning into build error. #pragma warning disable 618 private static bool IsSecurityOrCriticalException(Exception ex) { return ex is NullReferenceException || ex is StackOverflowException || ex is OutOfMemoryException || ex is System.Threading.ThreadAbortException || ex is ExecutionEngineException || ex is IndexOutOfRangeException || ex is AccessViolationException || ex is System.Security.SecurityException; } #pragma warning restore 618 } } // 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
- ProjectionPathSegment.cs
- TimerEventSubscriptionCollection.cs
- ObjectIDGenerator.cs
- ArraySortHelper.cs
- BaseResourcesBuildProvider.cs
- JobPageOrder.cs
- ObjectStateEntry.cs
- BezierSegment.cs
- EntityDesignerDataSourceView.cs
- TraceHandler.cs
- SystemParameters.cs
- ConfigurationManagerHelperFactory.cs
- ModelPropertyDescriptor.cs
- CryptoKeySecurity.cs
- EmptyControlCollection.cs
- OracleParameterBinding.cs
- CatalogPart.cs
- DbProviderManifest.cs
- UnsafeNativeMethods.cs
- DrawingAttributeSerializer.cs
- _CacheStreams.cs
- ChangeNode.cs
- TimersDescriptionAttribute.cs
- InternalConfigEventArgs.cs
- oledbmetadatacollectionnames.cs
- CommunicationObjectManager.cs
- Char.cs
- COM2Enum.cs
- CryptoConfig.cs
- RNGCryptoServiceProvider.cs
- Avt.cs
- StringExpressionSet.cs
- SourceElementsCollection.cs
- GuidelineSet.cs
- CompilerHelpers.cs
- VerificationException.cs
- XmlSchemaAppInfo.cs
- SyntaxCheck.cs
- DocumentAutomationPeer.cs
- PlatformCulture.cs
- RuntimeWrappedException.cs
- ResponseStream.cs
- UnionCodeGroup.cs
- OracleBoolean.cs
- ToolboxBitmapAttribute.cs
- DataBoundControl.cs
- BaseCodeDomTreeGenerator.cs
- ListControlConvertEventArgs.cs
- DrawListViewItemEventArgs.cs
- XsltInput.cs
- MappableObjectManager.cs
- SessionState.cs
- DataBindingHandlerAttribute.cs
- VScrollBar.cs
- Zone.cs
- SimpleFileLog.cs
- HtmlInputCheckBox.cs
- sqlinternaltransaction.cs
- OptimalBreakSession.cs
- ContentValidator.cs
- ModuleBuilderData.cs
- RuntimeHandles.cs
- SafeHandles.cs
- SizeValueSerializer.cs
- DtrList.cs
- XmlAttributeOverrides.cs
- ReachDocumentPageSerializerAsync.cs
- COSERVERINFO.cs
- ColumnWidthChangingEvent.cs
- WorkflowRuntimeBehavior.cs
- TableStyle.cs
- TextBoxBase.cs
- DirectoryInfo.cs
- CryptoConfig.cs
- SchemaImporter.cs
- WebPartDisplayMode.cs
- ThreadStartException.cs
- TargetException.cs
- LedgerEntry.cs
- WebPartDescription.cs
- ObjectComplexPropertyMapping.cs
- PrivilegedConfigurationManager.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- HTMLTextWriter.cs
- XmlException.cs
- SqlDataSourceStatusEventArgs.cs
- WorkflowPageSetupDialog.cs
- PageWrapper.cs
- DesignerActionService.cs
- Globals.cs
- Vector3dCollection.cs
- IisTraceListener.cs
- SetIterators.cs
- Rotation3DAnimationBase.cs
- HttpCacheParams.cs
- CorePropertiesFilter.cs
- ChangePasswordAutoFormat.cs
- Terminate.cs
- TextViewElement.cs
- ProviderSettings.cs