title: Localization of DisplayNameAttribute
body: <p>I am looking for a way to localize properties names displayed in a PropertyGrid. The property's name may be "overriden" using the DisplayNameAttribute attribute. Unfortunately attributes can not have non constant expressions. So I can not use strongly typed resources such as: </p>
  
  <pre><code>class Foo
  {
     [DisplayAttribute(Resources.MyPropertyNameLocalized)]  // do not compile
     string MyProperty {get; set;}
  }
  </code></pre>
  
  <p>I had a look around and found some suggestion to inherit from DisplayNameAttribute to be able to use resource. I would end up up with code like: </p>
  
  <pre><code>class Foo
  {
     [MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed
     string MyProperty {get; set;}
  }
  </code></pre>
  
  <p>However I lose strongly typed resource benefits which is definitely not a good thing. Then I came across <a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.modeling.design.displaynameresourceattribute.aspx" rel="noreferrer">DisplayNameResourceAttribute</a> which may be what I'm looking for. But it's supposed to be in Microsoft.VisualStudio.Modeling.Design namespace and I can't find what reference I am supposed to add for this namespace.</p>
  
  <p>Anybody know if there's a easier way to achieve DisplayName localization in a good way ? or if there is as way to use what Microsoft seems to be using for Visual Studio ?</p>