This documentation is archived and is not being maintained.

IResourceProvider Interface

Defines the interface a class must implement to act as a resource provider.

Namespace:  System.Web.Compilation
Assembly:  System.Web (in System.Web.dll)

'Declaration
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public Interface IResourceProvider
'Usage
Dim instance As IResourceProvider

A resource provider facilitates the retrieving of values from a resource file. When an expression of the form <%$ Resources: classKey, resourceKey %> is encountered during page parsing, the resource provider returns the localized value for the resource. The ResourceProviderFactory class creates instances of IResourceProvider objects for use in retrieving the values.

The following code example shows a customized resource provider factory that retrieves cached values. The resource provider factory creates an instance of a class that implements IResourceProvider.

<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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0
Show: