本文整理汇总了C#中System.Web.Compilation.DesignTimeResourceProviderFactoryAttribute类的典型用法代码示例。如果您正苦于以下问题:C# DesignTimeResourceProviderFactoryAttribute类的具体用法?C# DesignTimeResourceProviderFactoryAttribute怎么用?C# DesignTimeResourceProviderFactoryAttribute使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DesignTimeResourceProviderFactoryAttribute类属于System.Web.Compilation命名空间,在下文中一共展示了DesignTimeResourceProviderFactoryAttribute类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DesignTimeResourceProviderFactoryAttribute
namespace CustomResourceProviders
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Compilation;
using System.Resources;
using System.Globalization;
using System.Collections;
using System.Reflection;
using System.Web.UI.Design;
[
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];
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; }
}
public class CustomDesignTimeResourceProviderFactory :
DesignTimeResourceProviderFactory
{
private CustomDesignTimeLocalResourceProvider _localResourceProvider;
private CustomDesignTimeLocalResourceWriter _localResourceWriter;
private CustomDesignTimeGlobalResourceProvider _globalResourceProvider;
public override IResourceProvider
CreateDesignTimeLocalResourceProvider(IServiceProvider serviceProvider)
{
// Return an IResourceProvider.
_localResourceProvider ??= new CustomDesignTimeLocalResourceProvider();
return _localResourceProvider;
}
public override IDesignTimeResourceWriter
CreateDesignTimeLocalResourceWriter(IServiceProvider serviceProvider)
{
// Return an IDesignTimeResourceWriter.
_localResourceWriter ??= new CustomDesignTimeLocalResourceWriter();
return _localResourceWriter;
}
public override IResourceProvider
CreateDesignTimeGlobalResourceProvider(IServiceProvider serviceProvider,
string classKey)
{
// Return an IResourceProvider.
_globalResourceProvider ??= new CustomDesignTimeGlobalResourceProvider();
return _globalResourceProvider;
}
}