Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / ConfigUtil.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompatibleComparer.cs
- StorageModelBuildProvider.cs
- MsmqOutputMessage.cs
- CloudCollection.cs
- CancelAsyncOperationRequest.cs
- OrderToken.cs
- PropertyToken.cs
- FontStretch.cs
- SoapSchemaExporter.cs
- XmlSortKeyAccumulator.cs
- DataControlButton.cs
- SrgsGrammar.cs
- VariableValue.cs
- HttpModuleActionCollection.cs
- Token.cs
- DynamicMethod.cs
- MethodBody.cs
- UnmanagedMarshal.cs
- TableCell.cs
- WebSysDefaultValueAttribute.cs
- TaskbarItemInfo.cs
- PostBackOptions.cs
- BitArray.cs
- Debugger.cs
- DataTableClearEvent.cs
- DecimalConverter.cs
- SqlConnection.cs
- ListBox.cs
- SurrogateSelector.cs
- RelatedCurrencyManager.cs
- ProviderConnectionPointCollection.cs
- DefaultValidator.cs
- WebPartEventArgs.cs
- ConstNode.cs
- WinFormsSecurity.cs
- StorageScalarPropertyMapping.cs
- OracleParameter.cs
- ArgumentsParser.cs
- BStrWrapper.cs
- TextCollapsingProperties.cs
- controlskin.cs
- SortableBindingList.cs
- X500Name.cs
- ColorMatrix.cs
- FrameworkElementAutomationPeer.cs
- UidManager.cs
- Enum.cs
- NumberFormatter.cs
- MulticastDelegate.cs
- ChannelManager.cs
- WindowsToolbar.cs
- CreateParams.cs
- DesignTable.cs
- DataGridViewAddColumnDialog.cs
- SByteStorage.cs
- X509Certificate.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- SqlRowUpdatingEvent.cs
- Stack.cs
- IntegrationExceptionEventArgs.cs
- TypeInitializationException.cs
- StringBlob.cs
- XmlMemberMapping.cs
- LineBreak.cs
- Base64Stream.cs
- DesignerImageAdapter.cs
- CaseInsensitiveHashCodeProvider.cs
- WebPartCatalogAddVerb.cs
- TypeSystem.cs
- HandleCollector.cs
- HtmlEncodedRawTextWriter.cs
- BrushValueSerializer.cs
- HtmlEmptyTagControlBuilder.cs
- MailWriter.cs
- DataMemberAttribute.cs
- ToolStripRenderer.cs
- CodeAttachEventStatement.cs
- StringToken.cs
- XsltConvert.cs
- HijriCalendar.cs
- Processor.cs
- CoreSwitches.cs
- DataGridViewRowConverter.cs
- NameGenerator.cs
- QueryExpr.cs
- SrgsElement.cs
- TextServicesHost.cs
- WorkflowServiceInstance.cs
- XmlChoiceIdentifierAttribute.cs
- HTMLTextWriter.cs
- EdmComplexTypeAttribute.cs
- SrgsSubset.cs
- TypeUtils.cs
- PrintControllerWithStatusDialog.cs
- SQLUtility.cs
- Operator.cs
- SrgsElementFactoryCompiler.cs
- VariableDesigner.xaml.cs
- XmlDataLoader.cs
- ParserOptions.cs