Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / ConfigUtil.cs / 1305376 / ConfigUtil.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Threading; using System.Configuration; using System.Xml; using System.Web.Compilation; using System.Web.Util; internal class ConfigUtil { private ConfigUtil() { } internal static void CheckBaseType(Type expectedBaseType, Type userBaseType, string propertyName, ConfigurationElement configElement) { // Make sure the base type is valid if (!expectedBaseType.IsAssignableFrom(userBaseType)) { throw new ConfigurationErrorsException( SR.GetString(SR.Invalid_type_to_inherit_from, userBaseType.FullName, expectedBaseType.FullName), configElement.ElementInformation.Properties[propertyName].Source, configElement.ElementInformation.Properties[propertyName].LineNumber); } } internal static Type GetType(string typeName, string propertyName, ConfigurationElement configElement, XmlNode node, bool checkAptcaBit, bool ignoreCase) { // We should get either a propertyName/configElement or node, but not both. // They are used only for error reporting. Debug.Assert((propertyName != null) != (node != null)); Type val; try { val = BuildManager.GetType(typeName, true /*throwOnError*/, ignoreCase); } catch (Exception e) { if (e is ThreadAbortException || e is StackOverflowException || e is OutOfMemoryException) { throw; } if (node != null) { throw new ConfigurationErrorsException(e.Message, e, node); } else { if (configElement != null) { throw new ConfigurationErrorsException(e.Message, e, configElement.ElementInformation.Properties[propertyName].Source, configElement.ElementInformation.Properties[propertyName].LineNumber); } else { throw new ConfigurationErrorsException(e.Message, e); } } } // If we're not in full trust, only allow types that have the APTCA bit (ASURT 139687), // unless the checkAptcaBit flag is false if (checkAptcaBit) { if (node != null) { HttpRuntime.FailIfNoAPTCABit(val, node); } else { HttpRuntime.FailIfNoAPTCABit(val, configElement != null ? configElement.ElementInformation : null, propertyName); } } return val; } internal static Type GetType(string typeName, string propertyName, ConfigurationElement configElement) { return GetType(typeName, propertyName, configElement, true /*checkAptcaBit*/); } internal static Type GetType(string typeName, string propertyName, ConfigurationElement configElement, bool checkAptcaBit) { return GetType(typeName, propertyName, configElement, checkAptcaBit, false); } internal static Type GetType(string typeName, string propertyName, ConfigurationElement configElement, bool checkAptcaBit, bool ignoreCase) { return GetType(typeName, propertyName, configElement, null /*node*/, checkAptcaBit, ignoreCase); } internal static Type GetType(string typeName, XmlNode node) { return GetType(typeName, node, false /*ignoreCase*/); } internal static Type GetType(string typeName, XmlNode node, bool ignoreCase) { return GetType(typeName, null, null, node, true /*checkAptcaBit*/, ignoreCase); } internal static void CheckAssignableType(Type baseType, Type type, ConfigurationElement configElement, string propertyName) { if (!baseType.IsAssignableFrom(type)) { throw new ConfigurationErrorsException( SR.GetString(SR.Type_doesnt_inherit_from_type, type.FullName, baseType.FullName), configElement.ElementInformation.Properties[propertyName].Source, configElement.ElementInformation.Properties[propertyName].LineNumber); } } internal static void CheckAssignableType(Type baseType, Type baseType2, Type type, ConfigurationElement configElement, string propertyName) { if (!baseType.IsAssignableFrom(type) && !baseType2.IsAssignableFrom(type)) { throw new ConfigurationErrorsException( SR.GetString(SR.Type_doesnt_inherit_from_type, type.FullName, baseType.FullName), configElement.ElementInformation.Properties[propertyName].Source, configElement.ElementInformation.Properties[propertyName].LineNumber); } } internal static bool IsTypeHandlerOrFactory(Type t) { return typeof(IHttpHandler).IsAssignableFrom(t) || typeof(IHttpHandlerFactory).IsAssignableFrom(t); } } } // 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
- SynchronizationFilter.cs
- PriorityBindingExpression.cs
- XmlCodeExporter.cs
- ToolZone.cs
- PersianCalendar.cs
- EncodingNLS.cs
- TextDecorationCollection.cs
- FtpCachePolicyElement.cs
- CFStream.cs
- DiffuseMaterial.cs
- Drawing.cs
- DataGridViewColumnConverter.cs
- ModulesEntry.cs
- FragmentQueryProcessor.cs
- SingleObjectCollection.cs
- RectangleGeometry.cs
- TextServicesCompartment.cs
- Tracer.cs
- LinkClickEvent.cs
- XmlSchemaAnyAttribute.cs
- Rotation3DAnimationBase.cs
- TextServicesManager.cs
- RuntimeIdentifierPropertyAttribute.cs
- ILGenerator.cs
- SelectionPatternIdentifiers.cs
- Int32Animation.cs
- BamlRecordWriter.cs
- XmlAnyElementAttributes.cs
- WebPartExportVerb.cs
- RubberbandSelector.cs
- Deserializer.cs
- MergePropertyDescriptor.cs
- MulticastDelegate.cs
- ProxyHelper.cs
- ClosableStream.cs
- Validator.cs
- PointCollectionValueSerializer.cs
- HyperLinkColumn.cs
- FileVersionInfo.cs
- Content.cs
- DashStyle.cs
- ImageCollectionEditor.cs
- SqlCacheDependencyDatabase.cs
- WebPartTransformer.cs
- ExecutedRoutedEventArgs.cs
- initElementDictionary.cs
- InboundActivityHelper.cs
- FileDialog.cs
- WebPartTracker.cs
- MissingManifestResourceException.cs
- XmlSchemaValidator.cs
- ProfilePropertyMetadata.cs
- GridEntry.cs
- TableLayoutPanel.cs
- WeakReferenceList.cs
- PositiveTimeSpanValidator.cs
- HatchBrush.cs
- AssignDesigner.xaml.cs
- XmlLanguageConverter.cs
- Overlapped.cs
- ClientCredentialsElement.cs
- PasswordBoxAutomationPeer.cs
- LayoutTableCell.cs
- SafeFileMapViewHandle.cs
- DocobjHost.cs
- ValidationEventArgs.cs
- BitmapMetadataBlob.cs
- CodeAttributeDeclarationCollection.cs
- DataMemberAttribute.cs
- UseAttributeSetsAction.cs
- InkCanvas.cs
- FillBehavior.cs
- CodeTypeOfExpression.cs
- Attributes.cs
- AndCondition.cs
- MimeMultiPart.cs
- XmlSchemaObjectTable.cs
- ElementProxy.cs
- WebContext.cs
- SocketConnection.cs
- SHA1.cs
- ListInitExpression.cs
- WindowsPen.cs
- PopupRootAutomationPeer.cs
- SettingsSection.cs
- SmtpException.cs
- UriTemplateDispatchFormatter.cs
- ChangesetResponse.cs
- StandardTransformFactory.cs
- ImportOptions.cs
- SafeArrayTypeMismatchException.cs
- Update.cs
- FontSource.cs
- TransactionFlowAttribute.cs
- keycontainerpermission.cs
- PropertyGridView.cs
- DataTableCollection.cs
- SamlConstants.cs
- PrtCap_Public_Simple.cs
- ContextMenu.cs