ResourceProviderFactory Class
.NET Framework 2.0
Serves as the base class for classes that create resource providers.
Namespace: System.Web.Compilation
Assembly: System.Web (in system.web.dll)
Assembly: System.Web (in system.web.dll)
The following code example shows a customized resource provider factory that retrieves cached values.
[
DesignTimeResourceProviderFactoryAttribute(
typeof(CustomDesignTimeResourceProviderFactory))
]
public class CustomResourceProviderFactory : ResourceProviderFactory
{
public override IResourceProvider
CreateGlobalResourceProvider(string classname)
{
return new CustomResourceProvider(null, classname);
}
public override IResourceProvider
CreateLocalResourceProvider(string virtualPath)
{
return new CustomResourceProvider(virtualPath, null);
}
}
// Define the resource provider for global and local resources.
internal class CustomResourceProvider : IResourceProvider
{
string _virtualPath;
string _className;
public CustomResourceProvider(string virtualPath, string classname)
{
_virtualPath = virtualPath;
_className = classname;
}
private IDictionary GetResourceCache(string culturename)
{
return (IDictionary)
System.Web.HttpContext.Current.Cache[culturename];
}
object IResourceProvider.GetObject
(string resourceKey, CultureInfo culture)
{
object value;
string cultureName = null;
if (culture != null)
{
cultureName = culture.Name;
}
else
{
cultureName = CultureInfo.CurrentUICulture.Name;
}
value = GetResourceCache(cultureName)[resourceKey];
if (value == null)
{
value = GetResourceCache(null)[resourceKey];
}
return value;
}
IResourceReader IResourceProvider.ResourceReader
{
get
{
string cultureName = null;
CultureInfo currentUICulture = CultureInfo.CurrentUICulture;
if (!String.Equals(currentUICulture.Name,
CultureInfo.InstalledUICulture.Name))
{
cultureName = currentUICulture.Name;
}
return new CustomResourceReader
(GetResourceCache(cultureName));
}
}
}
internal sealed class CustomResourceReader : IResourceReader
{
private IDictionary _resources;
public CustomResourceReader(IDictionary resources)
{
_resources = resources;
}
IDictionaryEnumerator IResourceReader.GetEnumerator()
{
return _resources.GetEnumerator();
}
void IResourceReader.Close() { }
IEnumerator IEnumerable.GetEnumerator()
{
return _resources.GetEnumerator();
}
void IDisposable.Dispose() { return; }
}
- AspNetHostingPermission for operating in a hosted environment. Demand value: LinkDemand; Permission value: Minimal.
- AspNetHostingPermission for operating in a hosted environment. Demand value: InheritanceDemand; Permission value: Minimal.
Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.