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
- BulletedListDesigner.cs
- InfiniteTimeSpanConverter.cs
- TextRange.cs
- XmlDataSourceView.cs
- SchemaImporterExtensionsSection.cs
- __FastResourceComparer.cs
- SqlProviderUtilities.cs
- DrawingBrush.cs
- WebPartZoneBase.cs
- EpmContentDeSerializerBase.cs
- TreeNodeClickEventArgs.cs
- RowUpdatedEventArgs.cs
- MarkupCompilePass2.cs
- ReflectionTypeLoadException.cs
- PointConverter.cs
- CheckBox.cs
- ProfileService.cs
- SerializationSectionGroup.cs
- SqlStream.cs
- TrackingDataItem.cs
- InplaceBitmapMetadataWriter.cs
- WasHttpHandlersInstallComponent.cs
- Size3DValueSerializer.cs
- SafeRightsManagementSessionHandle.cs
- FixedHighlight.cs
- clipboard.cs
- ObjectFullSpanRewriter.cs
- ColorMatrix.cs
- ProfileSection.cs
- StrongNameKeyPair.cs
- NativeObjectSecurity.cs
- InputScopeAttribute.cs
- DataRow.cs
- XmlArrayAttribute.cs
- WorkflowServiceOperationListItem.cs
- DataColumnMappingCollection.cs
- Filter.cs
- ColumnHeader.cs
- StorageInfo.cs
- SQLConvert.cs
- Selector.cs
- TextChange.cs
- CompilationRelaxations.cs
- DispatcherExceptionFilterEventArgs.cs
- basecomparevalidator.cs
- ExpanderAutomationPeer.cs
- EtwTrackingParticipant.cs
- ToolZone.cs
- NativeMethodsOther.cs
- PolyBezierSegmentFigureLogic.cs
- SqlBuilder.cs
- XPathParser.cs
- FixUpCollection.cs
- ServiceNameCollection.cs
- TextSchema.cs
- WindowsMenu.cs
- IPCCacheManager.cs
- SimpleType.cs
- IndexedEnumerable.cs
- TextSelectionProcessor.cs
- WebPartHelpVerb.cs
- ObjectStateManagerMetadata.cs
- TimersDescriptionAttribute.cs
- NotConverter.cs
- SafeNativeMethods.cs
- login.cs
- WebPartTransformerCollection.cs
- DataConnectionHelper.cs
- ModelEditingScope.cs
- ObjectManager.cs
- ControlCachePolicy.cs
- NullableIntAverageAggregationOperator.cs
- SHA384Managed.cs
- CellCreator.cs
- xdrvalidator.cs
- RegexCaptureCollection.cs
- SystemIPGlobalProperties.cs
- TabletDeviceInfo.cs
- ListDictionaryInternal.cs
- FileSystemInfo.cs
- SatelliteContractVersionAttribute.cs
- LinearQuaternionKeyFrame.cs
- CommunicationObjectAbortedException.cs
- Nodes.cs
- FileDialogCustomPlacesCollection.cs
- DataSourceSerializationException.cs
- ExceptionTrace.cs
- DataAccessor.cs
- ContainerUIElement3D.cs
- MailMessageEventArgs.cs
- FunctionParameter.cs
- SoapParser.cs
- Atom10FormatterFactory.cs
- SqlDataSourceSelectingEventArgs.cs
- IisTraceListener.cs
- InstanceKeyView.cs
- BooleanAnimationUsingKeyFrames.cs
- AuthorizationBehavior.cs
- ApplicationDirectoryMembershipCondition.cs
- WinEventQueueItem.cs