DesignTimeResourceProviderFactoryAttribute Class

 

Specifies the type of resource provider factory for design time. This class cannot be inherited.

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

System.Object
  System.Attribute
    System.Web.Compilation.DesignTimeResourceProviderFactoryAttribute

[AttributeUsageAttribute(AttributeTargets.Class)]
public sealed class DesignTimeResourceProviderFactoryAttribute : Attribute

NameDescription
System_CAPS_pubmethodDesignTimeResourceProviderFactoryAttribute(String)

Initializes a new instance of the DesignTimeResourceProviderFactoryAttribute class with the attribute set to the specified factory type name.

System_CAPS_pubmethodDesignTimeResourceProviderFactoryAttribute(Type)

Initializes a new instance of the DesignTimeResourceProviderFactoryAttribute class with the attribute set to the qualified name of the specified factory type.

NameDescription
System_CAPS_pubpropertyFactoryTypeName

Gets the value of the factory type name.

System_CAPS_pubpropertyTypeId

When implemented in a derived class, gets a unique identifier for this Attribute.(Inherited from Attribute.)

NameDescription
System_CAPS_pubmethodEquals(Object)

This API supports the product infrastructure and is not intended to be used directly from your code. Returns a value that indicates whether this instance is equal to a specified object.(Inherited from Attribute.)

System_CAPS_pubmethodGetHashCode()

Returns the hash code for this instance.(Inherited from Attribute.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodIsDefaultAttribute()

Determines whether the default provider is used.(Overrides Attribute.IsDefaultAttribute().)

System_CAPS_pubmethodMatch(Object)

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.(Inherited from Attribute.)

The DesignTimeResourceProviderFactoryAttribute class allows a ResourceProviderFactory object to specify the type of the associated DesignTimeResourceProviderFactory object. The DesignTimeResourceProviderFactory class is used to create design-time providers for reading and writing resources. Within Microsoft Visual Studio 2005, a developer can use the Generate Local Resource command on the Tools menu to create resources during design time.

The following code example shows a customized resource provider factory that specifies a customized design-time resource provider factory through the DesignTimeResourceProviderFactoryAttribute attribute. This example does not include the code necessary to implement a customized design-time resource provider factory.

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];
            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; }
    }


    public class CustomDesignTimeResourceProviderFactory :
        DesignTimeResourceProviderFactory
    {
        private CustomDesignTimeLocalResourceProvider _localResourceProvider;
        private CustomDesignTimeLocalResourceWriter _localResourceWriter;
        private CustomDesignTimeGlobalResourceProvider _globalResourceProvider;

        public override IResourceProvider
            CreateDesignTimeLocalResourceProvider(IServiceProvider serviceProvider)
        {
            // Return an IResourceProvider.
            if (_localResourceProvider == null)
            {
                _localResourceProvider = new CustomDesignTimeLocalResourceProvider();
            }
            return _localResourceProvider;
        }

        public override IDesignTimeResourceWriter
            CreateDesignTimeLocalResourceWriter(IServiceProvider serviceProvider)
        {
            // Return an IDesignTimeResourceWriter.
            if (_localResourceWriter == null)
            {
                _localResourceWriter = new CustomDesignTimeLocalResourceWriter();
            }
            return _localResourceWriter;
        }

        public override IResourceProvider
            CreateDesignTimeGlobalResourceProvider(IServiceProvider serviceProvider,
                    string classKey)
        {
            // Return an IResourceProvider.
            if (_globalResourceProvider == null)
            {
                _globalResourceProvider = new CustomDesignTimeGlobalResourceProvider();
            }
            return _globalResourceProvider;
        }
    }

.NET Framework
Available since 2.0

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: