Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / ConfigUtil.cs / 2 / 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); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- transactioncontext.cs
- WindowsListViewGroupSubsetLink.cs
- DES.cs
- LocalizationComments.cs
- JoinGraph.cs
- CryptoKeySecurity.cs
- Floater.cs
- SizeAnimationClockResource.cs
- HttpDigestClientCredential.cs
- Size.cs
- EventInfo.cs
- ServiceNameCollection.cs
- BaseCAMarshaler.cs
- unitconverter.cs
- PermissionListSet.cs
- NamedPermissionSet.cs
- Button.cs
- TemplateParser.cs
- DataTemplateSelector.cs
- ValidationEventArgs.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- ViewPort3D.cs
- PersonalizableAttribute.cs
- MediaCommands.cs
- WinFormsSpinner.cs
- FrameworkContentElement.cs
- ServiceHttpHandlerFactory.cs
- ListViewSelectEventArgs.cs
- AssertSection.cs
- ProtocolsConfigurationEntry.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- DefaultSerializationProviderAttribute.cs
- InvalidOperationException.cs
- PartialList.cs
- Simplifier.cs
- ViewGenResults.cs
- ColorContext.cs
- tooltip.cs
- Odbc32.cs
- PropertyPath.cs
- Translator.cs
- SqlFileStream.cs
- PersistenceTypeAttribute.cs
- FieldNameLookup.cs
- FormatPage.cs
- AlphaSortedEnumConverter.cs
- ServiceOperationListItem.cs
- XmlSchema.cs
- PresentationTraceSources.cs
- DbReferenceCollection.cs
- TimeStampChecker.cs
- PromptEventArgs.cs
- MetadataItemEmitter.cs
- UnsafeNativeMethods.cs
- PropertyReferenceExtension.cs
- CatalogZoneBase.cs
- DataBoundControl.cs
- CaseInsensitiveOrdinalStringComparer.cs
- EntityDataSourceDataSelection.cs
- ToolStripItemEventArgs.cs
- PackageDigitalSignature.cs
- ScrollEventArgs.cs
- BitHelper.cs
- PreDigestedSignedInfo.cs
- ColorPalette.cs
- EnumerableRowCollection.cs
- DecoratedNameAttribute.cs
- WindowsIdentity.cs
- DeviceContext.cs
- ParseNumbers.cs
- ConnectionsZone.cs
- ConnectionProviderAttribute.cs
- StyleModeStack.cs
- PageAdapter.cs
- EventPrivateKey.cs
- IconConverter.cs
- InstanceKey.cs
- WebBrowserUriTypeConverter.cs
- MarginCollapsingState.cs
- ToolBarButtonDesigner.cs
- Renderer.cs
- SchemaImporterExtensionElementCollection.cs
- PersonalizationProvider.cs
- SHA512.cs
- ArgumentException.cs
- DataFormat.cs
- XmlEntity.cs
- StandardTransformFactory.cs
- HttpInputStream.cs
- WorkflowNamespace.cs
- ProcessThreadCollection.cs
- TextRangeSerialization.cs
- sqlser.cs
- CompensateDesigner.cs
- EllipseGeometry.cs
- Base64Stream.cs
- HtmlInputReset.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SafeBitVector32.cs
- XPathAncestorQuery.cs