Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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.
//------------------------------------------------------------------------------
//
// 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
- PermissionListSet.cs
- SQLDoubleStorage.cs
- RegexRunnerFactory.cs
- MappedMetaModel.cs
- PreloadedPackages.cs
- PanelDesigner.cs
- TemplatedMailWebEventProvider.cs
- WebPartTransformerCollection.cs
- DeviceFiltersSection.cs
- FrugalMap.cs
- TypeElement.cs
- SessionPageStatePersister.cs
- InvalidPropValue.cs
- DesigntimeLicenseContextSerializer.cs
- BasicExpressionVisitor.cs
- MLangCodePageEncoding.cs
- BaseParaClient.cs
- TextTreeNode.cs
- RemotingAttributes.cs
- WorkflowTransactionOptions.cs
- FixedSOMTextRun.cs
- SoapAttributes.cs
- WriterOutput.cs
- SignerInfo.cs
- BuildManagerHost.cs
- Vector3D.cs
- Bitmap.cs
- RegisteredScript.cs
- DodSequenceMerge.cs
- EventProvider.cs
- _RegBlobWebProxyDataBuilder.cs
- BitmapImage.cs
- WrappedReader.cs
- CodeGotoStatement.cs
- NamespaceInfo.cs
- CustomCredentialPolicy.cs
- BrowsableAttribute.cs
- EdmValidator.cs
- SwitchAttribute.cs
- DataContractAttribute.cs
- DecoratedNameAttribute.cs
- PrintDialogException.cs
- Atom10FormatterFactory.cs
- TickBar.cs
- ExtenderProvidedPropertyAttribute.cs
- MemberInfoSerializationHolder.cs
- PrintPreviewControl.cs
- HttpChannelBindingToken.cs
- GlyphsSerializer.cs
- MessageLogger.cs
- CompilationLock.cs
- ParserHooks.cs
- QueueException.cs
- FreezableOperations.cs
- MaterializeFromAtom.cs
- DataRecordInternal.cs
- LinqMaximalSubtreeNominator.cs
- ToolZoneDesigner.cs
- DragDeltaEventArgs.cs
- BrowserDefinitionCollection.cs
- OdbcReferenceCollection.cs
- ExceptionHandlerDesigner.cs
- FillRuleValidation.cs
- AcceleratedTokenProviderState.cs
- OdbcConnectionOpen.cs
- ColorTransformHelper.cs
- HttpCookieCollection.cs
- GetCertificateRequest.cs
- PageParser.cs
- ControlParameter.cs
- Win32.cs
- basevalidator.cs
- ImageListImage.cs
- XmlReader.cs
- XmlMemberMapping.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TokenBasedSet.cs
- CompoundFileIOPermission.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- Rule.cs
- ErrorStyle.cs
- StringFormat.cs
- RenderData.cs
- RegexInterpreter.cs
- EventMap.cs
- ToolStripDropDown.cs
- HMACMD5.cs
- WebPartConnectionsConfigureVerb.cs
- CryptoStream.cs
- Brush.cs
- XLinq.cs
- ServiceOperationWrapper.cs
- LinqTreeNodeEvaluator.cs
- x509store.cs
- HtmlInputHidden.cs
- XmlDictionaryWriter.cs
- FormsIdentity.cs
- DelegatingConfigHost.cs
- AuthenticationManager.cs
- OpCodes.cs