Feedback

C# - DescriptionAttribute von vorhandener Klasse übernehmen

Veröffentlicht von am 03.05.2008
(1 Bewertungen)
Mit diesem ReferencedDescription-Attribut wird für eine Eigenschaft anstelle des Description-Attributs der Text geholt, den NET für eine andere Klasse und Eigenschaft vorgemerkt hat. Beispiel: Für eine DataGridViewMaskedTextBoxColumn-Klasse wird die Beschreibung aus der MaskedTextBox.Mask-Eigenschaft angezeigt:

[ReferencedDescription(typeof(System.Windows.Forms.MaskedTextBox), "Mask")]
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

using System.ComponentModel;

#region Referenced Description Attribute

public class ReferencedDescriptionAttribute : DescriptionAttribute
{

  public ReferencedDescriptionAttribute(Type referencedType, string propertyName)
  {
    string result = "Referenced description not available";

    //    gets the properties of the referenced type
    PropertyDescriptorCollection properties
            = TypeDescriptor.GetProperties(referencedType);

    if (properties != null) {
      // gets a PropertyDescriptor to the specific property.
      PropertyDescriptor property = properties[propertyName];
      if (property != null) {
        //  gets the attributes of the required property
        AttributeCollection attributes = property.Attributes;

        // Gets the description attribute from the collection.
        DescriptionAttribute descript
          = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];

        // register the referenced description
        if (!String.IsNullOrEmpty(descript.Description))
          result = descript.Description;
      }
    }
    DescriptionValue = result;

  }
}

#endregion

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!