Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlConnectionFactory.cs
- LoginDesignerUtil.cs
- CollectionChangedEventManager.cs
- LogLogRecordEnumerator.cs
- HuffmanTree.cs
- ClientBuildManagerCallback.cs
- BackgroundWorker.cs
- HealthMonitoringSection.cs
- SystemDiagnosticsSection.cs
- PageContent.cs
- TextRunTypographyProperties.cs
- ListViewInsertionMark.cs
- MessageAction.cs
- StylusButtonEventArgs.cs
- DataGridColumnDropSeparator.cs
- AsyncOperationLifetimeManager.cs
- AvTrace.cs
- PeerApplicationLaunchInfo.cs
- DBSqlParserColumnCollection.cs
- RuntimeHelpers.cs
- ResourceProviderFactory.cs
- ValueProviderWrapper.cs
- TargetConverter.cs
- SingleResultAttribute.cs
- PropertyMap.cs
- MouseOverProperty.cs
- ClipboardProcessor.cs
- BrushValueSerializer.cs
- ButtonPopupAdapter.cs
- Point4D.cs
- xdrvalidator.cs
- ElementUtil.cs
- SimpleColumnProvider.cs
- XmlSchemaValidator.cs
- counter.cs
- ExecutionEngineException.cs
- FileDataSourceCache.cs
- _ListenerRequestStream.cs
- UnhandledExceptionEventArgs.cs
- ScrollPatternIdentifiers.cs
- NamespaceEmitter.cs
- ResXBuildProvider.cs
- QueryAsyncResult.cs
- WebChannelFactory.cs
- BinaryMessageEncodingBindingElement.cs
- ItemChangedEventArgs.cs
- QilBinary.cs
- XmlUtilWriter.cs
- SizeIndependentAnimationStorage.cs
- WhitespaceSignificantCollectionAttribute.cs
- HeaderedContentControl.cs
- RequestResizeEvent.cs
- StorageComplexTypeMapping.cs
- CryptoConfig.cs
- XmlSchemaGroupRef.cs
- IsolatedStorageFile.cs
- NavigationHelper.cs
- SelfIssuedAuthAsymmetricKey.cs
- RegisteredHiddenField.cs
- ActivityExecutionFilter.cs
- SqlCacheDependency.cs
- CounterSet.cs
- PaginationProgressEventArgs.cs
- KerberosReceiverSecurityToken.cs
- ByteConverter.cs
- GradientSpreadMethodValidation.cs
- SingleConverter.cs
- TextDecorationLocationValidation.cs
- EffectiveValueEntry.cs
- DragEvent.cs
- EncryptedKeyIdentifierClause.cs
- WebPartEditorOkVerb.cs
- SqlOuterApplyReducer.cs
- EnumType.cs
- LayoutInformation.cs
- UnsafeNativeMethods.cs
- ConnectionOrientedTransportManager.cs
- GridViewUpdatedEventArgs.cs
- DbDeleteCommandTree.cs
- ResourceDictionary.cs
- HostedTcpTransportManager.cs
- cookiecontainer.cs
- WebErrorHandler.cs
- DynamicRenderer.cs
- ImageClickEventArgs.cs
- InfoCardProofToken.cs
- CodeMethodInvokeExpression.cs
- DecimalAnimationBase.cs
- RoutedEventConverter.cs
- XmlSequenceWriter.cs
- GradientBrush.cs
- ReaderOutput.cs
- HMACSHA384.cs
- StandardBindingImporter.cs
- RemotingConfiguration.cs
- FolderBrowserDialog.cs
- EncodingDataItem.cs
- DirectoryNotFoundException.cs
- PropertyDescriptors.cs
- SchemaTypeEmitter.cs