Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridViewCell.cs
- TextRangeEditLists.cs
- SerializationObjectManager.cs
- Int32Rect.cs
- BamlRecords.cs
- KeySplineConverter.cs
- TriState.cs
- DebugView.cs
- UserControl.cs
- ButtonFieldBase.cs
- DataGridCellInfo.cs
- EasingKeyFrames.cs
- XmlAttributeAttribute.cs
- AddInSegmentDirectoryNotFoundException.cs
- CryptoKeySecurity.cs
- TabControlEvent.cs
- CodeExporter.cs
- DependencyObjectCodeDomSerializer.cs
- SamlSubjectStatement.cs
- XamlPathDataSerializer.cs
- InkCanvasFeedbackAdorner.cs
- BooleanProjectedSlot.cs
- ToolboxBitmapAttribute.cs
- GlyphingCache.cs
- InlinedAggregationOperatorEnumerator.cs
- FieldTemplateUserControl.cs
- SelectorItemAutomationPeer.cs
- Internal.cs
- SoapElementAttribute.cs
- FileUtil.cs
- Manipulation.cs
- ExceptionCollection.cs
- OutputScope.cs
- EnumType.cs
- UndoManager.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- TypeDescriptor.cs
- XmlUTF8TextReader.cs
- ToolTipAutomationPeer.cs
- x509utils.cs
- XmlHierarchicalEnumerable.cs
- SelfSignedCertificate.cs
- PageSettings.cs
- TransformedBitmap.cs
- SwitchDesigner.xaml.cs
- CodeAssignStatement.cs
- Pkcs9Attribute.cs
- CompoundFileIOPermission.cs
- SurrogateChar.cs
- NoneExcludedImageIndexConverter.cs
- Queue.cs
- SoapElementAttribute.cs
- TraceLog.cs
- RoleServiceManager.cs
- DataGridViewTextBoxCell.cs
- SecurityRequiresReviewAttribute.cs
- InputLangChangeEvent.cs
- SystemIPInterfaceStatistics.cs
- EntityViewContainer.cs
- FileSystemEnumerable.cs
- ExpressionBuilder.cs
- DataSourceHelper.cs
- GeneralTransform2DTo3DTo2D.cs
- InlineUIContainer.cs
- ProjectionPath.cs
- OleDbRowUpdatingEvent.cs
- cryptoapiTransform.cs
- ApplicationInfo.cs
- ExtendedProperty.cs
- XmlQualifiedName.cs
- StyleModeStack.cs
- DbModificationClause.cs
- BaseDataBoundControl.cs
- selecteditemcollection.cs
- SemanticValue.cs
- GlyphShapingProperties.cs
- OutputCacheSettingsSection.cs
- SqlConnectionPoolProviderInfo.cs
- TrustManager.cs
- documentsequencetextview.cs
- ComponentConverter.cs
- recordstatescratchpad.cs
- StructuredTypeEmitter.cs
- MemberPathMap.cs
- HotSpotCollection.cs
- BamlTreeUpdater.cs
- BaseValidator.cs
- MDIWindowDialog.cs
- XmlAttributeProperties.cs
- ComplexTypeEmitter.cs
- SessionStateContainer.cs
- Directory.cs
- CodeDomSerializerBase.cs
- AssemblyInfo.cs
- ADMembershipUser.cs
- SqlSupersetValidator.cs
- CollectionViewGroup.cs
- InvalidBodyAccessException.cs
- WriteFileContext.cs
- SectionRecord.cs