Code:
/ DotNET / DotNET / 8.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
- CompositeCollectionView.cs
- EventProviderWriter.cs
- XsdDateTime.cs
- CompressEmulationStream.cs
- CodeGotoStatement.cs
- SelectionGlyphBase.cs
- PlanCompilerUtil.cs
- ExplicitDiscriminatorMap.cs
- Base64Encoder.cs
- IndentedWriter.cs
- BCryptSafeHandles.cs
- CachingParameterInspector.cs
- PkcsMisc.cs
- Pair.cs
- TakeQueryOptionExpression.cs
- _BaseOverlappedAsyncResult.cs
- CodeTypeMemberCollection.cs
- Converter.cs
- BridgeDataRecord.cs
- DoubleUtil.cs
- ApplicationHost.cs
- WindowsStatusBar.cs
- MenuItem.cs
- WriteFileContext.cs
- DataGridViewIntLinkedList.cs
- ResourcesGenerator.cs
- MenuItem.cs
- ManagementObjectSearcher.cs
- SelectionWordBreaker.cs
- TaskSchedulerException.cs
- filewebresponse.cs
- Bezier.cs
- FocusManager.cs
- ObjectSerializerFactory.cs
- SortKey.cs
- XmlMapping.cs
- WebPartZoneCollection.cs
- ServiceThrottle.cs
- ZipIOExtraField.cs
- InstanceView.cs
- COM2ExtendedUITypeEditor.cs
- HwndSource.cs
- XmlSchemaObject.cs
- InvalidFilterCriteriaException.cs
- EventProviderWriter.cs
- DataGridPageChangedEventArgs.cs
- DbConnectionClosed.cs
- LinkButton.cs
- MetadataCache.cs
- EUCJPEncoding.cs
- RecordManager.cs
- SqlSupersetValidator.cs
- SmiEventSink.cs
- Set.cs
- SharedDp.cs
- DefaultPrintController.cs
- SQlBooleanStorage.cs
- TailCallAnalyzer.cs
- DataBoundControl.cs
- CommandConverter.cs
- AppearanceEditorPart.cs
- HttpStaticObjectsCollectionWrapper.cs
- XmlTextReaderImpl.cs
- XmlElement.cs
- PropertyStore.cs
- ApplicationProxyInternal.cs
- XmlILOptimizerVisitor.cs
- XmlSerializerSection.cs
- MissingMemberException.cs
- DbSource.cs
- LinqDataSourceHelper.cs
- DirectoryRootQuery.cs
- ListBox.cs
- CellConstantDomain.cs
- DbConnectionHelper.cs
- FontFamily.cs
- DateBoldEvent.cs
- ContainerAction.cs
- ReferencedCollectionType.cs
- OdbcUtils.cs
- SettingsBase.cs
- ViewgenGatekeeper.cs
- SecurityTokenReferenceStyle.cs
- DataGridViewCellValueEventArgs.cs
- InputLanguageEventArgs.cs
- QueryReaderSettings.cs
- ValidationErrorEventArgs.cs
- ActivityScheduledRecord.cs
- HandleExceptionArgs.cs
- NameSpaceEvent.cs
- _SafeNetHandles.cs
- FacetEnabledSchemaElement.cs
- EntitySqlQueryState.cs
- Point3DCollection.cs
- LexicalChunk.cs
- Tokenizer.cs
- SiteIdentityPermission.cs
- ListInitExpression.cs
- BasicExpressionVisitor.cs
- CreatingCookieEventArgs.cs