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
- QilTargetType.cs
- DocobjHost.cs
- ScanQueryOperator.cs
- QueryResponse.cs
- WindowsFont.cs
- SafeNativeMethods.cs
- SapiAttributeParser.cs
- TransformerConfigurationWizardBase.cs
- panel.cs
- CipherData.cs
- DataGridComponentEditor.cs
- ConfigXmlReader.cs
- ScriptServiceAttribute.cs
- ContractNamespaceAttribute.cs
- _ConnectionGroup.cs
- WorkflowFileItem.cs
- FixedSOMLineRanges.cs
- TreeNodeSelectionProcessor.cs
- ComponentSerializationService.cs
- XPathPatternParser.cs
- TagPrefixCollection.cs
- DeviceContexts.cs
- TiffBitmapEncoder.cs
- GenericTextProperties.cs
- RegexMatchCollection.cs
- ListenerTraceUtility.cs
- XmlWriter.cs
- CredentialCache.cs
- DocumentGridPage.cs
- ResourceContainer.cs
- PolygonHotSpot.cs
- QueryAccessibilityHelpEvent.cs
- DataControlFieldCollection.cs
- CodeAttributeDeclaration.cs
- BlurEffect.cs
- StaticDataManager.cs
- VirtualPath.cs
- ParallelTimeline.cs
- BackStopAuthenticationModule.cs
- SamlAuthorizationDecisionClaimResource.cs
- PointConverter.cs
- SvcMapFileLoader.cs
- Run.cs
- IndependentAnimationStorage.cs
- UnsettableComboBox.cs
- DurationConverter.cs
- ContextMenu.cs
- CmsInterop.cs
- AggregateNode.cs
- QueryAsyncResult.cs
- UTF8Encoding.cs
- FlowLayout.cs
- WasHttpModulesInstallComponent.cs
- LiteralControl.cs
- VideoDrawing.cs
- HttpVersion.cs
- BitmapEffectGeneralTransform.cs
- Event.cs
- HeaderedItemsControl.cs
- Opcode.cs
- TextSelectionHighlightLayer.cs
- CheckBoxList.cs
- DifferencingCollection.cs
- AssemblyInfo.cs
- MarkupExtensionParser.cs
- ManifestResourceInfo.cs
- AnchoredBlock.cs
- Timer.cs
- SafeArrayRankMismatchException.cs
- HtmlInputSubmit.cs
- XamlNamespaceHelper.cs
- CustomSignedXml.cs
- BaseDataBoundControl.cs
- WmiInstallComponent.cs
- RoutedEvent.cs
- PropertyTabChangedEvent.cs
- HideDisabledControlAdapter.cs
- CaseCqlBlock.cs
- QEncodedStream.cs
- UserControlCodeDomTreeGenerator.cs
- TableParagraph.cs
- Dictionary.cs
- AdCreatedEventArgs.cs
- MatrixKeyFrameCollection.cs
- GroupItemAutomationPeer.cs
- OleDbEnumerator.cs
- SafeCryptoHandles.cs
- UriTemplateCompoundPathSegment.cs
- IdentityModelDictionary.cs
- PkcsMisc.cs
- OrderedDictionary.cs
- ECDsa.cs
- HierarchicalDataSourceIDConverter.cs
- SafeCryptoHandles.cs
- CommandHelpers.cs
- TrackingRecord.cs
- XmlTextEncoder.cs
- ChannelSinkStacks.cs
- DataRow.cs
- OpacityConverter.cs