Ich halte mich für einen einigermaßen erfahrenen .NET-Entwickler, aber ich habe fast nie direkt Typen im Namespace System.ComponentModel verwendet. (Ich habe ein paar benutzerdefinierte Attribute implementiert und über Reflektion konsumiert).System.ComponentModel Namespace-Verwendung
In welchen Szenarien sind Typen wie Component, Container, PropertyDescriptor, TypeDescriptor, License und TypeConverter am nützlichsten?
Ich habe oft System.ComponentModel erwähnt, wenn es um "Designer" wie die in Visual Studio verfügbaren geht.
Sind diese Typen nur nützlich, wenn Sie beispielsweise ein benutzerdefiniertes Steuerelement mit einem netten visuellen Designer erstellen möchten (z. B. benutzerdefinierte Eigenschaften usw.)? Oder könnte ich sie auch in einem allgemeineren Code verwenden?
Für asynchrone Verarbeitung Ich habe tatsächlich das Async Programming Model verwendet, d. Delegaten und BeginInvoke(), EndInvoke(). Wie unterscheiden sich AsyncOperation usw., weißt du? – Ash
Wenn Sie eine Klasse erstellen, die asynchrone Ereignisse verfügbar macht, verwenden Sie normalerweise AsyncOperation usw. Mit anderen Worten, wenn Sie der Anbieter von asynchronen Ereignissen sind, nicht der Konsument. Wenn Sie mit den Methoden DoWorkAsync() und CancelAsync() sowie DoWorkCompleted und DoWorkProgressUpdated eine Klasse erstellen, können Sie diese verwenden, um sicherzustellen, dass Ereignisse im richtigen Thread aufgerufen werden. –