Sdílet prostřednictvím


DesignTimeResourceProviderFactoryAttribute Třída

Definice

Určuje typ továrny poskytovatele prostředků pro čas návrhu. Tuto třídu nelze zdědit.

public ref class DesignTimeResourceProviderFactoryAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class DesignTimeResourceProviderFactoryAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type DesignTimeResourceProviderFactoryAttribute = class
    inherit Attribute
Public NotInheritable Class DesignTimeResourceProviderFactoryAttribute
Inherits Attribute
Dědičnost
DesignTimeResourceProviderFactoryAttribute
Atributy

Příklady

Následující příklad kódu ukazuje přizpůsobenou továrnu poskytovatele prostředků, která určuje přizpůsobenou továrnu poskytovatele prostředků v době návrhu prostřednictvím atributu DesignTimeResourceProviderFactoryAttribute . Tento příklad neobsahuje kód potřebný k implementaci přizpůsobené továrny zprostředkovatele prostředků v době návrhu.

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;
        }
    }
Imports System.Collections.Generic
Imports System.Text
Imports System.Web.Compilation
Imports System.Resources
Imports System.Globalization
Imports System.Collections
Imports System.Reflection
Imports System.Web.UI.Design
Namespace CustomResourceProviders
    <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

    Public Class CustomDesignTimeResourceProviderFactory
        Inherits DesignTimeResourceProviderFactory

        Private _localResourceProvider As New CustomDesignTimeLocalResourceProvider
        Private _localResourceWriter As New CustomDesignTimeLocalResourceWriter
        Private _globalResourceProvider As New CustomDesignTimeGlobalResourceProvider

        Public Overrides Function CreateDesignTimeLocalResourceProvider(ByVal serviceProvider As IServiceProvider) As IResourceProvider
            ' Return an IResourceProvider.
            If (_localResourceProvider Is Nothing) Then
                _localResourceProvider = New CustomDesignTimeLocalResourceProvider
            End If
            Return _localResourceProvider
        End Function
        Public Overrides Function CreateDesignTimeLocalResourceWriter(ByVal serviceProvider As IServiceProvider) As IDesignTimeResourceWriter
            ' Return an IDesignTimeResourceWriter.
            If (_localResourceWriter Is Nothing) Then
                _localResourceWriter = New CustomDesignTimeLocalResourceWriter
            End If
            Return _localResourceWriter
        End Function
        Public Overrides Function CreateDesignTimeGlobalResourceProvider(ByVal serviceProvider As IServiceProvider, ByVal classKey As String) As IResourceProvider
            ' Return an IResourceProvider.
            If (_globalResourceProvider Is Nothing) Then
                _globalResourceProvider = New CustomDesignTimeGlobalResourceProvider
            End If
            Return _globalResourceProvider
        End Function
    End Class

Poznámky

Třída DesignTimeResourceProviderFactoryAttribute umožňuje ResourceProviderFactory objektu určit typ přidruženého DesignTimeResourceProviderFactory objektu. Třída DesignTimeResourceProviderFactory se používá k vytváření poskytovatelů času návrhu pro čtení a zápis prostředků. V Microsoft Visual Studio 2005 může vývojář použít příkaz Generovat místní prostředek v nabídce Nástroje k vytvoření prostředků během návrhu.

Konstruktory

DesignTimeResourceProviderFactoryAttribute(String)

Inicializuje novou instanci DesignTimeResourceProviderFactoryAttribute třídy s atributem nastaveným na zadaný název typu továrny.

DesignTimeResourceProviderFactoryAttribute(Type)

Inicializuje novou instanci DesignTimeResourceProviderFactoryAttribute třídy s atributem nastaveným na kvalifikovaný název zadaného typu továrny.

Vlastnosti

FactoryTypeName

Získá hodnotu názvu typu továrny.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IsDefaultAttribute()

Určuje, jestli se použije výchozí zprostředkovatel.

Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro

Viz také