1 //------------------------------------------------------------------------------
2 // <copyright file="ResourceDisplayNameAttribute.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //------------------------------------------------------------------------------
6 
7 namespace System.Web.UI
8 {
9     using System;
10     using System.ComponentModel;
11     using System.Reflection;
12     using System.Web.Resources;
13 
14     [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
15     internal sealed class ResourceDisplayNameAttribute : DisplayNameAttribute
16     {
17         private bool _resourceLoaded;
18         private readonly string _displayNameResourceName;
19 
ResourceDisplayNameAttribute(string displayNameResourceName)20         public ResourceDisplayNameAttribute(string displayNameResourceName)
21         {
22             _displayNameResourceName = displayNameResourceName;
23         }
24 
25         public override string DisplayName
26         {
27             get
28             {
29                 if (!_resourceLoaded)
30                 {
31                     _resourceLoaded = true;
32                     DisplayNameValue = AtlasWeb.ResourceManager.GetString(_displayNameResourceName, AtlasWeb.Culture);
33                 }
34                 return base.DisplayName;
35             }
36         }
37     }
38 }
39