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
- ConfigurationSettings.cs
- ObjectDataSourceMethodEventArgs.cs
- SafeEventHandle.cs
- ObfuscateAssemblyAttribute.cs
- XPathNodeHelper.cs
- IDReferencePropertyAttribute.cs
- SqlDataReaderSmi.cs
- ButtonRenderer.cs
- BuildDependencySet.cs
- CodeNamespaceImportCollection.cs
- SymDocumentType.cs
- WebPartDisplayModeCollection.cs
- CalendarTable.cs
- CodeIndexerExpression.cs
- PropagatorResult.cs
- SatelliteContractVersionAttribute.cs
- InlineCollection.cs
- DisplayMemberTemplateSelector.cs
- MergeFilterQuery.cs
- PersistenceContextEnlistment.cs
- PermissionSet.cs
- ResourceType.cs
- FileVersionInfo.cs
- AppSettingsExpressionBuilder.cs
- DataGridViewRowsAddedEventArgs.cs
- CommandEventArgs.cs
- GeometryConverter.cs
- ServiceAppDomainAssociationProvider.cs
- WindowPatternIdentifiers.cs
- MediaPlayerState.cs
- ContainerUtilities.cs
- GestureRecognizer.cs
- MutexSecurity.cs
- StringReader.cs
- TypeSystem.cs
- HierarchicalDataBoundControl.cs
- DataGrid.cs
- SqlAggregateChecker.cs
- FileChangesMonitor.cs
- SiteOfOriginPart.cs
- PropertyValidationContext.cs
- SectionUpdates.cs
- InternalControlCollection.cs
- QueryContinueDragEventArgs.cs
- PointAnimationUsingKeyFrames.cs
- MouseButtonEventArgs.cs
- EdmToObjectNamespaceMap.cs
- SingleSelectRootGridEntry.cs
- DbProviderManifest.cs
- IsolatedStorage.cs
- NativeBuffer.cs
- ClientUrlResolverWrapper.cs
- SyndicationDeserializer.cs
- ShapingEngine.cs
- BackgroundWorker.cs
- QueueProcessor.cs
- GenericPrincipal.cs
- Semaphore.cs
- UnsafeMethods.cs
- ErrorHandler.cs
- MonthChangedEventArgs.cs
- CodeIterationStatement.cs
- VirtualizedCellInfoCollection.cs
- BindingValueChangedEventArgs.cs
- DataGridViewAdvancedBorderStyle.cs
- RemotingConfigParser.cs
- WebControlsSection.cs
- ScriptManagerProxy.cs
- StatusBar.cs
- UInt16Converter.cs
- Cursor.cs
- SQLByte.cs
- WebServiceHandler.cs
- DataGridViewSelectedCellCollection.cs
- RevocationPoint.cs
- MembershipPasswordException.cs
- cookiecontainer.cs
- SafeCancelMibChangeNotify.cs
- ManipulationPivot.cs
- Font.cs
- XNodeNavigator.cs
- DesignerActionUIService.cs
- AssociationType.cs
- Brush.cs
- ApplicationServiceManager.cs
- SpecialFolderEnumConverter.cs
- MouseBinding.cs
- SecurityKeyIdentifierClause.cs
- DetailsViewCommandEventArgs.cs
- RowsCopiedEventArgs.cs
- WebPartMenuStyle.cs
- RadialGradientBrush.cs
- FtpRequestCacheValidator.cs
- ContentPathSegment.cs
- RelationshipSet.cs
- GradientStop.cs
- ConfigurationSectionCollection.cs
- HttpPostedFileBase.cs
- GuidelineCollection.cs
- ReaderWriterLockSlim.cs