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
- SerializationEventsCache.cs
- ListControlConvertEventArgs.cs
- UnsafeNativeMethods.cs
- PreviewPageInfo.cs
- CannotUnloadAppDomainException.cs
- PointLight.cs
- dataobject.cs
- ContextBase.cs
- DocumentOrderQuery.cs
- VersionPair.cs
- XmlExceptionHelper.cs
- PropertyPushdownHelper.cs
- RegistryPermission.cs
- XmlIlVisitor.cs
- CompositeFontFamily.cs
- CacheSection.cs
- PtsPage.cs
- TypeExtensions.cs
- FilterableAttribute.cs
- VirtualPathProvider.cs
- odbcmetadatacolumnnames.cs
- DesignerAdRotatorAdapter.cs
- BitmapCodecInfoInternal.cs
- NumericExpr.cs
- AbstractSvcMapFileLoader.cs
- NativeMethods.cs
- QueryContinueDragEventArgs.cs
- XPathDocument.cs
- ExpressionPrinter.cs
- BatchWriter.cs
- ProtocolsConfigurationEntry.cs
- RevocationPoint.cs
- DataSourceHelper.cs
- EntityDataSourceReferenceGroup.cs
- SqlDataSource.cs
- RequestCachePolicyConverter.cs
- IImplicitResourceProvider.cs
- WebFormDesignerActionService.cs
- NamespaceQuery.cs
- SettingsPropertyIsReadOnlyException.cs
- NavigationPropertySingletonExpression.cs
- DeploymentExceptionMapper.cs
- XsdDateTime.cs
- SHA256Managed.cs
- IgnoreDeviceFilterElementCollection.cs
- WebMessageEncoderFactory.cs
- TextComposition.cs
- SimpleExpression.cs
- TextBoxDesigner.cs
- SwitchAttribute.cs
- OutputBuffer.cs
- JsonByteArrayDataContract.cs
- ScrollViewer.cs
- FrameworkContentElementAutomationPeer.cs
- ShapeTypeface.cs
- RecommendedAsConfigurableAttribute.cs
- PasswordTextContainer.cs
- InheritanceAttribute.cs
- WindowsFormsLinkLabel.cs
- StringAnimationUsingKeyFrames.cs
- SafeIUnknown.cs
- GroupStyle.cs
- HtmlEmptyTagControlBuilder.cs
- AutoFocusStyle.xaml.cs
- TextEditorLists.cs
- ReaderWriterLock.cs
- IndentedWriter.cs
- GridItemProviderWrapper.cs
- SafeMILHandle.cs
- ObjectDataSourceMethodEventArgs.cs
- CultureMapper.cs
- PrinterUnitConvert.cs
- SortExpressionBuilder.cs
- MULTI_QI.cs
- SolidBrush.cs
- Annotation.cs
- RoutedEventHandlerInfo.cs
- AmbientProperties.cs
- DataObjectSettingDataEventArgs.cs
- DataControlHelper.cs
- CodeLabeledStatement.cs
- InternalConfigConfigurationFactory.cs
- XmlDeclaration.cs
- XpsS0ValidatingLoader.cs
- DefaultDiscoveryServiceExtension.cs
- IdentityManager.cs
- RadioButton.cs
- QueryContinueDragEventArgs.cs
- ArrayTypeMismatchException.cs
- WorkflowElementDialog.cs
- Command.cs
- TableStyle.cs
- MsmqIntegrationProcessProtocolHandler.cs
- TextLineBreak.cs
- HttpCachePolicyElement.cs
- _SSPISessionCache.cs
- ObjectItemNoOpAssemblyLoader.cs
- Attachment.cs
- Paragraph.cs
- AutomationIdentifierGuids.cs