Wir definieren damit, welcher grafische Designer geladen werden soll, um eine Instanz eines bestimmten Typs zu konfigurieren.
Das heißt, wir haben eine Art Workflow-Designer, der alle möglichen Befehl Typen aus einer Assembly lädt. Diese Befehlstypen haben Eigenschaften, die konfiguriert werden müssen, , so dass jeder Befehlstyp einen anderen Designer benötigt (usercontrol).
Betrachten wir zum Beispiel den folgenden Befehl ein (ein Verbund in unserer Lösung genannt)
[CompositeMetaData("Delay","Sets the delay between commands",1)]
[CompositeDesigner(typeof(DelayCompositeDesigner))]
public class DelayComposite : CompositeBase
{
// code here
}
Dies wird Informationen an zwei Stellen verwendet wird
1) Wenn der Designer eine Liste von Befehlen erzeugt, Es verwendet das CompositeMetaData , um weitere Informationen zu dem Befehl anzuzeigen.
2) Wenn der Benutzer einen Befehl an den Designer fügt und der Designer schafft eine Instanz dieser Klasse, es an der CompositeDesigner Eigenschaft sieht schafft eine neue Instanz des angegebenen Typs (Usercontrol) und fügt sie zu der visuelle Designer.
Betrachten Sie den folgenden Code, wir verwenden, um die Befehle in unserer „Symbolleiste“ zu laden:
Wie Sie sehen können, für jede Art in der Montage von dem der Name mit den „Komposit“ endet, Wir erhalten die benutzerdefinierten Attribute und verwenden diese Informationen zum Auffüllen unserer ToolboxListItem-Instanz.
Wie für den Designer laden, wird das Attribut wie folgt retreived:
var designerAttribute = (CompositeDesignerAttribute)item.CompositType.GetCustomAttributes(false)
.Where(a => a.GetType() == typeof(CompositeDesignerAttribute)).FirstOrDefault();
Dies ist nur ein Beispiel dafür, wie Sie damit benutzerdefinierte Attribute verwendet, möglicherweise in der Lage
Ich hoffe, das gibt Ihnen ein Ort zum Starten.
Sie werden auch im Visual Studio Designer verwendet. –
Und es ist wichtig zu beachten, dass es sich nur um Hinweise handelt: Sie müssen den Standardwert Ihrer MyProperty beispielsweise im Code auf 100 setzen, sonst werden Sie den Verbraucher Ihrer Unterkunft belügen. –