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
- TraceSwitch.cs
- XmlObjectSerializerContext.cs
- FontFaceLayoutInfo.cs
- HideDisabledControlAdapter.cs
- MimeWriter.cs
- CodeDirectionExpression.cs
- WebEventTraceProvider.cs
- MsmqIntegrationBindingElement.cs
- WindowPattern.cs
- DialogBaseForm.cs
- BoundColumn.cs
- Error.cs
- OrthographicCamera.cs
- CounterSampleCalculator.cs
- Preprocessor.cs
- TextSearch.cs
- ProgressBar.cs
- ScrollData.cs
- future.cs
- TransformCollection.cs
- SoapInteropTypes.cs
- UInt32.cs
- ListenerElementsCollection.cs
- CharacterHit.cs
- Predicate.cs
- PropertyPath.cs
- ADConnectionHelper.cs
- HtmlInputImage.cs
- CqlQuery.cs
- RecognizedAudio.cs
- Size3DConverter.cs
- CustomAttributeSerializer.cs
- IisTraceListener.cs
- AddingNewEventArgs.cs
- ValueUnavailableException.cs
- HttpEncoderUtility.cs
- DataRelationPropertyDescriptor.cs
- Missing.cs
- SingleAnimationBase.cs
- WebHttpElement.cs
- CompoundFileReference.cs
- Byte.cs
- AppLevelCompilationSectionCache.cs
- BlockingCollection.cs
- IncrementalReadDecoders.cs
- DataTemplateKey.cs
- WebResponse.cs
- ValueTypeFieldReference.cs
- DataSourceControlBuilder.cs
- DataGridViewColumnStateChangedEventArgs.cs
- RotationValidation.cs
- HttpWebResponse.cs
- PropertyOverridesTypeEditor.cs
- ExpandSegment.cs
- DateTimeOffsetStorage.cs
- LinkDescriptor.cs
- DropDownList.cs
- GregorianCalendarHelper.cs
- SecurityUtils.cs
- MaskedTextBoxDesignerActionList.cs
- WindowsImpersonationContext.cs
- XpsImageSerializationService.cs
- SemanticResultKey.cs
- Directory.cs
- _ChunkParse.cs
- Form.cs
- SqlDependency.cs
- NetworkStream.cs
- KeyValuePair.cs
- BitVec.cs
- ValidationErrorCollection.cs
- StickyNoteAnnotations.cs
- TrustLevelCollection.cs
- SqlConnectionHelper.cs
- CollectionBase.cs
- Canvas.cs
- GuidelineSet.cs
- StylusTip.cs
- SpeakProgressEventArgs.cs
- SqlRowUpdatingEvent.cs
- MemberPathMap.cs
- ComponentManagerBroker.cs
- HttpStreamXmlDictionaryReader.cs
- TrustLevel.cs
- BaseCollection.cs
- Help.cs
- Light.cs
- WorkflowMessageEventHandler.cs
- VisualStyleElement.cs
- ReaderContextStackData.cs
- XComponentModel.cs
- MessageContractExporter.cs
- AttachedPropertyBrowsableAttribute.cs
- TypeLibConverter.cs
- DbConnectionPoolGroupProviderInfo.cs
- MessageLoggingFilterTraceRecord.cs
- UniqueConstraint.cs
- PersistenceTypeAttribute.cs
- AccessKeyManager.cs
- VideoDrawing.cs