title: Can a C# class inherit attributes from its interface?
body: <p>This would appear to imply "no". Which is unfortunate.</p>
  
  <pre><code>[AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class,
   AllowMultiple = true, Inherited = true)]
  public class CustomDescriptionAttribute : Attribute
  {
      public string Description { get; private set; }
  
      public CustomDescriptionAttribute(string description)
      {
          Description = description;
      }
  }
  
  [CustomDescription("IProjectController")]
  public interface IProjectController
  {
      void Create(string projectName);
  }
  
  internal class ProjectController : IProjectController
  {
      public void Create(string projectName)
      {
      }
  }
  
  [TestFixture]
  public class CustomDescriptionAttributeTests
  {
      [Test]
      public void ProjectController_ShouldHaveCustomDescriptionAttribute()
      {
          Type type = typeof(ProjectController);
          object[] attributes = type.GetCustomAttributes(
              typeof(CustomDescriptionAttribute),
              true);
  
          // NUnit.Framework.AssertionException:   Expected: 1   But was:  0
          Assert.AreEqual(1, attributes.Length);
      }
  }
  </code></pre>
  
  <p>Can a class inherit attributes from an interface? Or am I barking up the wrong tree here?</p>