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
- CssTextWriter.cs
- MediaTimeline.cs
- ImageFormatConverter.cs
- GroupItem.cs
- EncryptedPackageFilter.cs
- CollectionDataContract.cs
- DateTimeValueSerializerContext.cs
- Error.cs
- Content.cs
- WorkflowRuntimeServiceElement.cs
- StreamSecurityUpgradeProvider.cs
- _SslState.cs
- SqlRowUpdatingEvent.cs
- DataViewListener.cs
- IsolatedStorageFilePermission.cs
- SchemaMerger.cs
- AncillaryOps.cs
- IntegerCollectionEditor.cs
- DependencyObjectType.cs
- MenuBase.cs
- InternalConfigHost.cs
- BidPrivateBase.cs
- log.cs
- JournalEntryListConverter.cs
- SymbolEqualComparer.cs
- ProtocolViolationException.cs
- SafeCryptHandles.cs
- InstanceLockedException.cs
- QueueProcessor.cs
- XmlSchemaRedefine.cs
- Substitution.cs
- HandledMouseEvent.cs
- PasswordRecovery.cs
- StringOutput.cs
- NotifyInputEventArgs.cs
- odbcmetadatafactory.cs
- EntityConnection.cs
- SQLBinaryStorage.cs
- ApplicationTrust.cs
- XmlSchemaImporter.cs
- DeferredRunTextReference.cs
- MetadataItem_Static.cs
- LastQueryOperator.cs
- ContextStaticAttribute.cs
- CellNormalizer.cs
- SafeCoTaskMem.cs
- ActivityWithResultConverter.cs
- ReaderWriterLock.cs
- WebBrowser.cs
- SafeCryptContextHandle.cs
- DBCommand.cs
- InstancePersistenceEvent.cs
- _SecureChannel.cs
- TargetParameterCountException.cs
- OleStrCAMarshaler.cs
- DocumentAutomationPeer.cs
- ExpressionDumper.cs
- Pointer.cs
- GatewayDefinition.cs
- DATA_BLOB.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- Inline.cs
- Point3DAnimationBase.cs
- ControlUtil.cs
- TagNameToTypeMapper.cs
- ComboBoxHelper.cs
- WebPartConnectionsCancelEventArgs.cs
- WebBrowserBase.cs
- ResourceReader.cs
- BlurBitmapEffect.cs
- LabelExpression.cs
- OleStrCAMarshaler.cs
- TableParagraph.cs
- ConcurrencyBehavior.cs
- PrimitiveXmlSerializers.cs
- BrowserCapabilitiesCompiler.cs
- HttpCapabilitiesBase.cs
- AuthenticationSection.cs
- Schedule.cs
- SqlParameter.cs
- FragmentQuery.cs
- ApplicationServiceHelper.cs
- UserControlDesigner.cs
- XmlBinaryReader.cs
- HttpHeaderCollection.cs
- XamlBrushSerializer.cs
- SmiEventSink_DeferedProcessing.cs
- PublisherIdentityPermission.cs
- RequestChannel.cs
- DataServiceStreamProviderWrapper.cs
- XPathQilFactory.cs
- PropertyToken.cs
- EastAsianLunisolarCalendar.cs
- CredentialCache.cs
- XmlDeclaration.cs
- ReadingWritingEntityEventArgs.cs
- StringValueSerializer.cs
- ResXResourceReader.cs
- OdbcParameter.cs
- AuthenticationManager.cs