System.ComponentModel命名空间用法

时间:2009-12-15 13:30:13

标签: .net system.componentmodel

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

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

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

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

1 个答案:

答案 0 :(得分:2)

与您一样,我只是间接地使用您列出的特定类(ComponentContainer等),即以已导出的形式(每System.Windows.Forms.Control派生自{ {1}}等)。所以我没有更多要添加的内容。向自定义控件添加属性时,我几乎总是使用许多ComponentDefaultValueAttribute和其他DesignerSerializationVisibilityAttribute类。但这很常见,可能不是你的问题。

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

  • AsyncOperation
  • AsyncOperationManager
  • ProgressChangedEventHandler / ProgressChangedEventArgs
  • RunWorkerCompletedEventHandler / RunWorkerCompletedEventArgs