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
- SafeNativeMemoryHandle.cs
- autovalidator.cs
- ScrollItemPatternIdentifiers.cs
- Update.cs
- ReadOnlyHierarchicalDataSourceView.cs
- FileEnumerator.cs
- PresentationUIStyleResources.cs
- ResourcePool.cs
- RolePrincipal.cs
- WebServiceEnumData.cs
- ComponentEditorForm.cs
- TextElementCollection.cs
- HTMLTextWriter.cs
- ComPlusSynchronizationContext.cs
- SelectedDatesCollection.cs
- SystemEvents.cs
- OleStrCAMarshaler.cs
- FontConverter.cs
- RoleService.cs
- FastEncoderWindow.cs
- LineMetrics.cs
- EntityFunctions.cs
- Properties.cs
- WS2007FederationHttpBindingCollectionElement.cs
- CodeDomSerializerBase.cs
- Matrix3D.cs
- WorkflowStateRollbackService.cs
- StrokeNodeOperations2.cs
- Recipient.cs
- SizeF.cs
- XamlSerializerUtil.cs
- NumberSubstitution.cs
- DownloadProgressEventArgs.cs
- CircleEase.cs
- ResXDataNode.cs
- BitmapDownload.cs
- StyleXamlParser.cs
- BeginEvent.cs
- MatrixAnimationUsingKeyFrames.cs
- TemplateBindingExtensionConverter.cs
- XDRSchema.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- SecurityUtils.cs
- DesignerActionItemCollection.cs
- LinqDataSourceContextEventArgs.cs
- DataGridDesigner.cs
- ToolBar.cs
- AccessControlList.cs
- TemplateControl.cs
- TransactionInformation.cs
- OrthographicCamera.cs
- SapiGrammar.cs
- DBConcurrencyException.cs
- ScrollItemPattern.cs
- XmlSchemaCollection.cs
- SchemaEntity.cs
- DbProviderManifest.cs
- Point3DValueSerializer.cs
- PerformanceCounterCategory.cs
- PeerObject.cs
- ConsoleTraceListener.cs
- CanExpandCollapseAllConverter.cs
- ValidationPropertyAttribute.cs
- Compress.cs
- ByeOperation11AsyncResult.cs
- ValueUtilsSmi.cs
- TypeCacheManager.cs
- CachedCompositeFamily.cs
- AuthenticationModuleElementCollection.cs
- DbConnectionPoolCounters.cs
- GridViewSelectEventArgs.cs
- Msec.cs
- Utilities.cs
- CommonObjectSecurity.cs
- DataGridRow.cs
- BitmapEffectDrawing.cs
- PropertyItem.cs
- ExtendedPropertyDescriptor.cs
- TextTreeDeleteContentUndoUnit.cs
- PropertyConverter.cs
- BoolExpression.cs
- Empty.cs
- COM2Properties.cs
- KeyInstance.cs
- TreeViewItemAutomationPeer.cs
- AutoSizeToolBoxItem.cs
- PLINQETWProvider.cs
- HtmlShim.cs
- PlaceHolder.cs
- CSharpCodeProvider.cs
- FontFamily.cs
- DataViewListener.cs
- WebPartConnectionsConfigureVerb.cs
- SqlClientFactory.cs
- _HeaderInfoTable.cs
- RoleManagerEventArgs.cs
- PersonalizationProviderHelper.cs
- TaiwanCalendar.cs
- CodeCastExpression.cs
- PointUtil.cs