Type的文档。GetTypeCode州:
评论
当从Type继承时,可以更改此方法的行为通过重写GetTypeCodeImpl方法
当从System.Type继承时,文档没有描述。它是否有效或适用于任何实际应用程序,还是仅适用于CLI的实现者?
系统。类型文档也不包含这些信息,它只有一个必须为派生类重写的成员列表。
由于无法重写typeof
,我假设typeof
操作符仍然返回内部系统的一个实例。来自mscorlib程序集的RuntimeType类,或类似的。那么用户派生类有什么用呢?
基本上,你不应该从System.Type
中派生出自己的类型。除非您是CLR团队的一员,否则我永远看不到它的用途。如果您正在实现一个mock框架或类似的东西,那么可能有这样做的原因,但我很怀疑。我对任何从Type
衍生出来的东西都持怀疑态度——我认为如果你不小心的话,这是一种很容易出错的东西。
我怀疑文档应该说的是"从System.Type
派生的类通过重写GetTypeCodeImpl
来改变这个方法的行为"-尽管坦率地说,即使是用户也不需要知道。
在我的例子中,我想创建我将在运行时动态创建的实例和类(从数据源(如XML))。我成功地子类化了System。你不能使用Activator.CreateInstance(yourSubType)创建实例。
我通过将我的源(XML)转换为可编译的c#代码,然后使用CSharpCodeProvider进行编译,从而解决了这个问题。