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
- Debugger.cs
- XmlDataDocument.cs
- FlowLayout.cs
- DispatcherProcessingDisabled.cs
- DataControlFieldCollection.cs
- SqlStream.cs
- SortDescriptionCollection.cs
- DataGridLinkButton.cs
- RegisteredHiddenField.cs
- DoubleAnimationClockResource.cs
- DataPager.cs
- EventLogEntryCollection.cs
- EventMappingSettingsCollection.cs
- SchemaTableOptionalColumn.cs
- TreeNodeCollectionEditor.cs
- UTF32Encoding.cs
- LogManagementAsyncResult.cs
- MonthChangedEventArgs.cs
- HwndHostAutomationPeer.cs
- FixedStringLookup.cs
- MailHeaderInfo.cs
- ObjectStateFormatter.cs
- DataColumnChangeEvent.cs
- KeyValuePair.cs
- MSAAWinEventWrap.cs
- Publisher.cs
- DropDownList.cs
- OdbcParameter.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- PasswordBoxAutomationPeer.cs
- ContextBase.cs
- TextDecoration.cs
- NumberAction.cs
- MailMessage.cs
- RemoteWebConfigurationHostServer.cs
- SafeWaitHandle.cs
- StorageMappingItemCollection.cs
- ProtocolsConfigurationEntry.cs
- ReferentialConstraint.cs
- WebBaseEventKeyComparer.cs
- ExpandSegmentCollection.cs
- ImageBrush.cs
- XPathNodeIterator.cs
- Rect3D.cs
- XmlException.cs
- CultureTable.cs
- OverflowException.cs
- wgx_exports.cs
- RequestQueue.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- Constraint.cs
- ObfuscationAttribute.cs
- FusionWrap.cs
- SHA1CryptoServiceProvider.cs
- TraceListener.cs
- NavigatorInput.cs
- Utils.cs
- GCHandleCookieTable.cs
- Deserializer.cs
- InsufficientExecutionStackException.cs
- coordinator.cs
- ToolStripSystemRenderer.cs
- ConstrainedDataObject.cs
- Size.cs
- CodeTypeDeclarationCollection.cs
- ProcessInputEventArgs.cs
- SchemaEntity.cs
- AssemblyCollection.cs
- DependencyPropertyKind.cs
- ViewManager.cs
- SessionState.cs
- ArithmeticLiteral.cs
- SeparatorAutomationPeer.cs
- GlobalizationAssembly.cs
- RotateTransform3D.cs
- BasePropertyDescriptor.cs
- XmlSchemaSequence.cs
- OdbcConnection.cs
- SingleTagSectionHandler.cs
- FormsAuthentication.cs
- RtfControlWordInfo.cs
- CustomDictionarySources.cs
- StylusButtonCollection.cs
- StylusSystemGestureEventArgs.cs
- ObjectContextServiceProvider.cs
- NamespaceDecl.cs
- DocumentPageTextView.cs
- CommandConverter.cs
- FlowDocumentPage.cs
- GradientStopCollection.cs
- StreamAsIStream.cs
- StructuredTypeEmitter.cs
- StartUpEventArgs.cs
- WorkflowServiceNamespace.cs
- RefreshEventArgs.cs
- Attributes.cs
- StreamInfo.cs
- WmlLinkAdapter.cs
- MatrixCamera.cs
- StaticContext.cs