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
- EncodingInfo.cs
- Visual3D.cs
- RoleService.cs
- TabRenderer.cs
- XmlWriterTraceListener.cs
- DebugInfoGenerator.cs
- AsymmetricSignatureFormatter.cs
- MouseCaptureWithinProperty.cs
- TableItemProviderWrapper.cs
- TextRangeEditLists.cs
- XmlHelper.cs
- MDIControlStrip.cs
- PageTrueTypeFont.cs
- StringDictionary.cs
- EntityConnectionStringBuilder.cs
- DataSet.cs
- SafeThemeHandle.cs
- XmlILOptimizerVisitor.cs
- UTF32Encoding.cs
- JsonServiceDocumentSerializer.cs
- TypeForwardedToAttribute.cs
- CacheHelper.cs
- SerializationObjectManager.cs
- _Events.cs
- Parameter.cs
- WindowsListViewSubItem.cs
- FormsAuthenticationUser.cs
- BlobPersonalizationState.cs
- TextFormatter.cs
- OdbcErrorCollection.cs
- SerialReceived.cs
- TextFindEngine.cs
- Catch.cs
- CalendarDay.cs
- SchemaElementDecl.cs
- Currency.cs
- LinqDataSourceHelper.cs
- SerializationSectionGroup.cs
- StructuredTypeInfo.cs
- StrongNameIdentityPermission.cs
- MultipartIdentifier.cs
- ScriptIgnoreAttribute.cs
- XPathAncestorIterator.cs
- QueueSurrogate.cs
- GridViewColumnCollection.cs
- GeneralTransform3D.cs
- ToolStripTemplateNode.cs
- JsonDataContract.cs
- StylusPointPropertyId.cs
- PackageFilter.cs
- DetailsViewPagerRow.cs
- MetadataHelper.cs
- Operator.cs
- DetailsViewInsertedEventArgs.cs
- IpcChannel.cs
- Span.cs
- DockEditor.cs
- MsdtcWrapper.cs
- AccessKeyManager.cs
- HttpApplicationStateBase.cs
- StrokeNodeOperations2.cs
- Type.cs
- GridViewRow.cs
- ObjectSecurityT.cs
- ByteRangeDownloader.cs
- CqlParser.cs
- CustomAttribute.cs
- PriorityItem.cs
- DbTransaction.cs
- RemotingClientProxy.cs
- GenericPrincipal.cs
- EntityCommand.cs
- HwndAppCommandInputProvider.cs
- CollectionType.cs
- WebControlsSection.cs
- MenuItemBindingCollection.cs
- UriExt.cs
- Base64Encoding.cs
- DeferredTextReference.cs
- DeviceContext.cs
- UpdatePanel.cs
- ErrorRuntimeConfig.cs
- ValueConversionAttribute.cs
- IdentifierService.cs
- TableAdapterManagerNameHandler.cs
- _IPv6Address.cs
- MD5.cs
- ConnectionManagementSection.cs
- SqlConnection.cs
- ProxyWebPartManager.cs
- MimeBasePart.cs
- GridView.cs
- BasePattern.cs
- DataGridDetailsPresenterAutomationPeer.cs
- XmlMessageFormatter.cs
- ClientProxyGenerator.cs
- PropertyValueUIItem.cs
- XmlSignatureProperties.cs
- UrlPropertyAttribute.cs
- HttpDebugHandler.cs