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
- SqlMethods.cs
- TableRow.cs
- BindingCompleteEventArgs.cs
- BindingsCollection.cs
- documentation.cs
- RightsManagementEncryptionTransform.cs
- contentDescriptor.cs
- SchemaMerger.cs
- SimpleMailWebEventProvider.cs
- FontInfo.cs
- FlowDocumentFormatter.cs
- TextRangeProviderWrapper.cs
- StorageEndPropertyMapping.cs
- ExpandCollapseProviderWrapper.cs
- AccessDataSourceDesigner.cs
- TypeConverterHelper.cs
- ILGenerator.cs
- AddressHeaderCollection.cs
- ToolbarAUtomationPeer.cs
- TextComposition.cs
- HttpRawResponse.cs
- DesignerWebPartChrome.cs
- ThreadAttributes.cs
- AssociationEndMember.cs
- Color.cs
- LiteralControl.cs
- QilBinary.cs
- LowerCaseStringConverter.cs
- InkCollectionBehavior.cs
- MediaTimeline.cs
- AlphabeticalEnumConverter.cs
- TraceUtils.cs
- ExpressionDumper.cs
- EventlogProvider.cs
- ClientTargetCollection.cs
- ParenthesizePropertyNameAttribute.cs
- DbConnectionClosed.cs
- xmlglyphRunInfo.cs
- ProtectedProviderSettings.cs
- InteropExecutor.cs
- RangeEnumerable.cs
- HwndHost.cs
- XmlFormatReaderGenerator.cs
- DesignerListAdapter.cs
- SQLMoneyStorage.cs
- RelatedView.cs
- _AutoWebProxyScriptHelper.cs
- basecomparevalidator.cs
- SingleStorage.cs
- TextTreeExtractElementUndoUnit.cs
- MetadataCache.cs
- SpeakProgressEventArgs.cs
- MLangCodePageEncoding.cs
- SrgsDocument.cs
- DataError.cs
- CompiledAction.cs
- SendKeys.cs
- WebZone.cs
- RSAPKCS1SignatureDeformatter.cs
- ShaderEffect.cs
- ScriptingScriptResourceHandlerSection.cs
- BitmapEffectInput.cs
- NetworkCredential.cs
- DataGridViewDataConnection.cs
- ValidationErrorCollection.cs
- DesignTableCollection.cs
- RectValueSerializer.cs
- ApplicationDirectoryMembershipCondition.cs
- MatrixTransform3D.cs
- PropertyValue.cs
- TransportContext.cs
- XPathMessageFilterElementComparer.cs
- Tag.cs
- EmptyQuery.cs
- TimerExtension.cs
- DropShadowEffect.cs
- OleDbError.cs
- PngBitmapEncoder.cs
- ColorContextHelper.cs
- MetadataUtilsSmi.cs
- GifBitmapDecoder.cs
- UserValidatedEventArgs.cs
- ThreadPool.cs
- QuotedStringFormatReader.cs
- RegexBoyerMoore.cs
- FormattedTextSymbols.cs
- StructuredTypeEmitter.cs
- CodeTypeParameterCollection.cs
- TextEditorSelection.cs
- ActiveXContainer.cs
- SignatureDescription.cs
- EventLog.cs
- NumberFunctions.cs
- DbDataReader.cs
- CryptoStream.cs
- FamilyMap.cs
- CustomTrackingRecord.cs
- SecurityUtils.cs
- HiddenField.cs
- ChildTable.cs