Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Compilation / IResourceProvider.cs / 2 / IResourceProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.Collections; using System.Collections.Specialized; using System.Reflection; using System.IO; using System.Security.Permissions; using System.CodeDom; using System.Globalization; using System.Resources; using System.Web.Compilation; using System.Web.Util; using System.Web.UI; /* [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] * Basic interface to access and enumerate resources */ [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public interface IResourceProvider { /* * Retrieve a resource object for the passed in key and culture */ object GetObject(string resourceKey, CultureInfo culture); /* * Returns a reader that enumerates all the neutral resources for this provider */ IResourceReader ResourceReader { get; } } /* * Base class for resource providers based on a standard ResourceManager */ internal abstract class BaseResXResourceProvider: IResourceProvider { private ResourceManager _resourceManager; ///// IResourceProvider implementation public virtual object GetObject(string resourceKey, CultureInfo culture) { // Attempt to get the resource manager EnsureResourceManager(); // If we couldn't get a resource manager, return null if (_resourceManager == null) return null; if (culture == null) culture = CultureInfo.CurrentUICulture; return _resourceManager.GetObject(resourceKey, culture); } public virtual IResourceReader ResourceReader { get { return null; } } ///// End of IResourceProvider implementation protected abstract ResourceManager CreateResourceManager(); private void EnsureResourceManager() { if (_resourceManager != null) return; _resourceManager = CreateResourceManager(); } } /* * ResourceManager based provider for application resources. */ internal class GlobalResXResourceProvider : BaseResXResourceProvider { private string _classKey; internal GlobalResXResourceProvider(string classKey) { _classKey = classKey; } protected override ResourceManager CreateResourceManager() { string fullClassName = BaseResourcesBuildProvider.DefaultResourcesNamespace + "." + _classKey; // If there is no app resource assembly, return null if (BuildManager.AppResourcesAssembly == null) return null; ResourceManager resourceManager = new ResourceManager(fullClassName, BuildManager.AppResourcesAssembly); resourceManager.IgnoreCase = true; return resourceManager; } public override IResourceReader ResourceReader { get { // App resources don't support implicit resources, so the IResourceReader // should never be needed throw new NotSupportedException(); } } } /* * ResourceManager based provider for page (local) resources. */ internal class LocalResXResourceProvider : BaseResXResourceProvider { private VirtualPath _virtualPath; internal LocalResXResourceProvider(VirtualPath virtualPath) { _virtualPath = virtualPath; } protected override ResourceManager CreateResourceManager() { ResourceManager resourceManager = null; Assembly pageResAssembly = GetLocalResourceAssembly(); if (pageResAssembly != null) { string fileName = _virtualPath.FileName; resourceManager = new ResourceManager(fileName, pageResAssembly); resourceManager.IgnoreCase = true; } else { throw new InvalidOperationException(SR.GetString(SR.ResourceExpresionBuilder_PageResourceNotFound)); } return resourceManager; } public override IResourceReader ResourceReader { get { // Get the local resource assembly for this page Assembly pageResAssembly = GetLocalResourceAssembly(); if (pageResAssembly == null) return null; // Get the name of the embedded .resource file for this page string resourceFileName = _virtualPath.FileName + ".resources"; // Make it lower case, since GetManifestResourceStream is case sensitive resourceFileName = resourceFileName.ToLower(CultureInfo.InvariantCulture); // Get the resource stream from the resource assembly Stream resourceStream = pageResAssembly.GetManifestResourceStream(resourceFileName); // If this page has no resources, return null if (resourceStream == null) return null; return new ResourceReader(resourceStream); } } // Need to Assert here in order to access the codegen dir ( [PermissionSet(SecurityAction.Assert, Unrestricted=true)] private Assembly GetLocalResourceAssembly() { // Remove the page file name to get its directory VirtualPath virtualDir = _virtualPath.Parent; // Get the name of the local resource assembly string cacheKey = BuildManager.GetLocalResourcesAssemblyName(virtualDir); BuildResult result = BuildManager.GetBuildResultFromCache(cacheKey); if (result != null) { return ((BuildResultCompiledAssembly)result).ResultAssembly; } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.Collections; using System.Collections.Specialized; using System.Reflection; using System.IO; using System.Security.Permissions; using System.CodeDom; using System.Globalization; using System.Resources; using System.Web.Compilation; using System.Web.Util; using System.Web.UI; /* [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] * Basic interface to access and enumerate resources */ [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public interface IResourceProvider { /* * Retrieve a resource object for the passed in key and culture */ object GetObject(string resourceKey, CultureInfo culture); /* * Returns a reader that enumerates all the neutral resources for this provider */ IResourceReader ResourceReader { get; } } /* * Base class for resource providers based on a standard ResourceManager */ internal abstract class BaseResXResourceProvider: IResourceProvider { private ResourceManager _resourceManager; ///// IResourceProvider implementation public virtual object GetObject(string resourceKey, CultureInfo culture) { // Attempt to get the resource manager EnsureResourceManager(); // If we couldn't get a resource manager, return null if (_resourceManager == null) return null; if (culture == null) culture = CultureInfo.CurrentUICulture; return _resourceManager.GetObject(resourceKey, culture); } public virtual IResourceReader ResourceReader { get { return null; } } ///// End of IResourceProvider implementation protected abstract ResourceManager CreateResourceManager(); private void EnsureResourceManager() { if (_resourceManager != null) return; _resourceManager = CreateResourceManager(); } } /* * ResourceManager based provider for application resources. */ internal class GlobalResXResourceProvider : BaseResXResourceProvider { private string _classKey; internal GlobalResXResourceProvider(string classKey) { _classKey = classKey; } protected override ResourceManager CreateResourceManager() { string fullClassName = BaseResourcesBuildProvider.DefaultResourcesNamespace + "." + _classKey; // If there is no app resource assembly, return null if (BuildManager.AppResourcesAssembly == null) return null; ResourceManager resourceManager = new ResourceManager(fullClassName, BuildManager.AppResourcesAssembly); resourceManager.IgnoreCase = true; return resourceManager; } public override IResourceReader ResourceReader { get { // App resources don't support implicit resources, so the IResourceReader // should never be needed throw new NotSupportedException(); } } } /* * ResourceManager based provider for page (local) resources. */ internal class LocalResXResourceProvider : BaseResXResourceProvider { private VirtualPath _virtualPath; internal LocalResXResourceProvider(VirtualPath virtualPath) { _virtualPath = virtualPath; } protected override ResourceManager CreateResourceManager() { ResourceManager resourceManager = null; Assembly pageResAssembly = GetLocalResourceAssembly(); if (pageResAssembly != null) { string fileName = _virtualPath.FileName; resourceManager = new ResourceManager(fileName, pageResAssembly); resourceManager.IgnoreCase = true; } else { throw new InvalidOperationException(SR.GetString(SR.ResourceExpresionBuilder_PageResourceNotFound)); } return resourceManager; } public override IResourceReader ResourceReader { get { // Get the local resource assembly for this page Assembly pageResAssembly = GetLocalResourceAssembly(); if (pageResAssembly == null) return null; // Get the name of the embedded .resource file for this page string resourceFileName = _virtualPath.FileName + ".resources"; // Make it lower case, since GetManifestResourceStream is case sensitive resourceFileName = resourceFileName.ToLower(CultureInfo.InvariantCulture); // Get the resource stream from the resource assembly Stream resourceStream = pageResAssembly.GetManifestResourceStream(resourceFileName); // If this page has no resources, return null if (resourceStream == null) return null; return new ResourceReader(resourceStream); } } // Need to Assert here in order to access the codegen dir ( [PermissionSet(SecurityAction.Assert, Unrestricted=true)] private Assembly GetLocalResourceAssembly() { // Remove the page file name to get its directory VirtualPath virtualDir = _virtualPath.Parent; // Get the name of the local resource assembly string cacheKey = BuildManager.GetLocalResourcesAssemblyName(virtualDir); BuildResult result = BuildManager.GetBuildResultFromCache(cacheKey); if (result != null) { return ((BuildResultCompiledAssembly)result).ResultAssembly; } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Logging.cs
- BinHexDecoder.cs
- PropertiesTab.cs
- SafeFileMappingHandle.cs
- InvalidProgramException.cs
- TransportBindingElement.cs
- DefaultWorkflowSchedulerService.cs
- RemotingServices.cs
- ExecutorLocksHeldException.cs
- SQLDateTimeStorage.cs
- AddressHeader.cs
- XappLauncher.cs
- FrameworkElement.cs
- EntityTypeBase.cs
- LifetimeServices.cs
- HttpCookie.cs
- DynamicValueConverter.cs
- BamlLocalizer.cs
- HtmlLink.cs
- Transform3D.cs
- OptionalRstParameters.cs
- CredentialCache.cs
- FirstMatchCodeGroup.cs
- ChangeTracker.cs
- ControlCollection.cs
- HandlerBase.cs
- AmbientProperties.cs
- ControlEvent.cs
- StrokeNodeData.cs
- QueryOutputWriterV1.cs
- MdbDataFileEditor.cs
- DataServiceQuery.cs
- recordstate.cs
- DataGridViewCellStyleConverter.cs
- SqlClientPermission.cs
- PluralizationService.cs
- SBCSCodePageEncoding.cs
- ObjectStorage.cs
- FigureParaClient.cs
- VisualStyleTypesAndProperties.cs
- SecurityDocument.cs
- CurrentChangingEventArgs.cs
- PerformanceCounterPermissionEntry.cs
- ResourceDisplayNameAttribute.cs
- DTCTransactionManager.cs
- QueryStringParameter.cs
- InkPresenterAutomationPeer.cs
- ToolStripContainerDesigner.cs
- ChangeProcessor.cs
- NameSpaceExtractor.cs
- MimeBasePart.cs
- ObjectCache.cs
- KeyedCollection.cs
- DbResourceAllocator.cs
- DelegatingTypeDescriptionProvider.cs
- TemplateBindingExtension.cs
- ContentType.cs
- UnsafeNativeMethods.cs
- ToolboxSnapDragDropEventArgs.cs
- SiteMapDataSourceDesigner.cs
- OracleTransaction.cs
- ToolStripComboBox.cs
- WeakReadOnlyCollection.cs
- CollectionViewGroup.cs
- DataGridViewRowEventArgs.cs
- Point3D.cs
- TdsValueSetter.cs
- WebConfigurationFileMap.cs
- TabControlToolboxItem.cs
- TreeNodeBinding.cs
- Byte.cs
- LocatorPartList.cs
- TextMarkerSource.cs
- HttpRuntimeSection.cs
- TagPrefixCollection.cs
- RowSpanVector.cs
- Authorization.cs
- _ContextAwareResult.cs
- UdpDiscoveryEndpointElement.cs
- JumpPath.cs
- objectquery_tresulttype.cs
- ObjectQueryState.cs
- IImplicitResourceProvider.cs
- CompilerScopeManager.cs
- DrawingAttributes.cs
- Label.cs
- DependencyPropertyKey.cs
- InstanceKeyCompleteException.cs
- AppSettingsSection.cs
- FastPropertyAccessor.cs
- BatchStream.cs
- XmlWrappingReader.cs
- AccessedThroughPropertyAttribute.cs
- NumericUpDownAcceleration.cs
- ItemType.cs
- RuleSetReference.cs
- SoapUnknownHeader.cs
- Baml2006ReaderFrame.cs
- SqlClientFactory.cs
- ManifestResourceInfo.cs