ResourceProviderFactory Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Sert de classe de base pour les classes qui créent des fournisseurs de ressources.
public ref class ResourceProviderFactory abstract
public abstract class ResourceProviderFactory
type ResourceProviderFactory = class
Public MustInherit Class ResourceProviderFactory
- Héritage
-
ResourceProviderFactory
Exemples
L’exemple de code suivant montre une fabrique de fournisseur de ressources personnalisée qui récupère les valeurs mises en cache.
[
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; }
}
<DesignTimeResourceProviderFactoryAttribute(GetType(CustomDesignTimeResourceProviderFactory))> _
Public Class CustomResourceProviderFactory
Inherits ResourceProviderFactory
Public Overrides Function CreateGlobalResourceProvider(ByVal classname As String) As IResourceProvider
Return New CustomResourceProvider(Nothing, classname)
End Function
Public Overrides Function CreateLocalResourceProvider(ByVal virtualPath As String) As IResourceProvider
Return New CustomResourceProvider(virtualPath, Nothing)
End Function
End Class
' Define the resource provider for global and local resources.
Friend Class CustomResourceProvider
Implements IResourceProvider
Dim _virtualPath As String
Dim _className As String
Public Sub New(ByVal virtualPath As String, ByVal classname As String)
_virtualPath = virtualPath
_className = classname
End Sub
Private Function GetResourceCache(ByVal culturename As String) As IDictionary
Return System.Web.HttpContext.Current.Cache(culturename)
End Function
Function GetObject(ByVal resourceKey As String, ByVal culture As CultureInfo) As Object Implements IResourceProvider.GetObject
Dim value As Object
Dim cultureName As String
cultureName = Nothing
If (IsNothing(culture)) Then
cultureName = CultureInfo.CurrentUICulture.Name
Else
cultureName = culture.Name
End If
value = GetResourceCache(cultureName)(resourceKey)
If (value = Nothing) Then
value = GetResourceCache(Nothing)(resourceKey)
End If
Return value
End Function
ReadOnly Property ResourceReader() As IResourceReader Implements IResourceProvider.ResourceReader
Get
Dim cultureName As String
Dim currentUICulture As CultureInfo
cultureName = Nothing
currentUICulture = CultureInfo.CurrentUICulture
If (Not (String.Equals(currentUICulture.Name, CultureInfo.InstalledUICulture.Name))) Then
cultureName = currentUICulture.Name
End If
Return New CustomResourceReader(GetResourceCache(cultureName))
End Get
End Property
End Class
Friend NotInheritable Class CustomResourceReader
Implements IResourceReader
Private _resources As IDictionary
Public Sub New(ByVal resources As IDictionary)
_resources = resources
End Sub
Function GetEnumerator1() As IDictionaryEnumerator Implements IResourceReader.GetEnumerator
Return _resources.GetEnumerator()
End Function
Sub Close() Implements IResourceReader.Close
End Sub
Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Return _resources.GetEnumerator()
End Function
Sub Dispose() Implements IDisposable.Dispose
End Sub
End Class
Remarques
ResourceProviderFactory est une classe abstraite qui sert de classe de base pour les objets qui retournent des fournisseurs de ressources globaux et locaux. Les classes doivent dériver de ResourceProviderFactory pour implémenter ses fonctionnalités.
Constructeurs
ResourceProviderFactory() |
Lors d'une implémentation dans une classe dérivée, initialise une nouvelle instance de la classe dérivée. |
Méthodes
CreateGlobalResourceProvider(String) |
Lors d'une substitution dans une classe dérivée, crée un fournisseur de ressources globales. |
CreateLocalResourceProvider(String) |
Lors d'une substitution dans une classe dérivée, crée un fournisseur de ressources locales. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |