System.ComponentModel命名空间用法

Ash*_*Ash 9 .net system.componentmodel

我认为自己是一个经验丰富的.NET开发人员,但我几乎从未在System.ComponentModel命名空间中直接使用类型.(我已经实现了一些自定义属性并通过反射消耗它们).

在什么样的场景中,诸如Component,Container,PropertyDescriptor,TypeDescriptor,License和TypeConverter等类型最有用?

在谈论"设计者"时,我经常看到System.ComponentModel,例如Visual Studio中提供的那些.

例如,当您想要使用漂亮的可视化设计器(例如自定义属性等)构建自定义控件时,这些类型是否有用?或者我也可以在更通用的代码中使用它们吗?

Dav*_*eer 2

和您一样,我只间接使用了您列出的特定类(ComponentContainer等),即以已经派生的形式(每个类都System.Windows.Forms.Control派生自Component等)。所以我没有什么要补充的。当向自定义控件添加属性时,我几乎总是使用许多DefaultValueAttributeDesignerSerializationVisibilityAttribute和其他*Attribute类。但这很常见,而且可能不是你的问题所在。

至于命名空间的其余部分,我需要大量的异步处理,并经常使用以下内容:

  • 异步操作
  • 异步操作管理器
  • ProgressChangedEventHandler / ProgressChangedEventArgs
  • RunWorkerCompletedEventHandler / RunWorkerCompletedEventArgs