c# .net clr bcl

c# - ¿Cuándo el UnderlyingSystemType difiere de la instancia de Tipo actual?



.net clr (1)

System.Type contiene una propiedad UnderlyingSystemType . Msdn states que:

Indica el tipo proporcionado por el tiempo de ejecución de lenguaje común que representa este tipo.

En la mayoría de los casos, esta propiedad simplemente devuelve la instancia de Type actual.

Mi pregunta es, en qué circunstancias esta propiedad no devuelve la instancia de Type actual. Y en esos casos, ¿qué tipo de tipo será la instancia de Type actual y el tipo de sistema subyacente devuelto?


Para ser honesto, nunca lo hice por mi cuenta, pero sé que es posible crear su propia definición tipo RuntimeType de su tipo específico.

Si observa que la clase Type es abstracta y tiene muchos miembros abstractos. Lo que sucede es que su tipo (lo que sea) crea automáticamente RuntimeType derivado de la clase Type y lo implementa para su tipo.

Por lo tanto, la propiedad UnderlyingSystemType en el caso de un RuntimeType RuntimeType devolverá la propiedad Type igual valor, en el caso de una implementación anulada, en cambio, (eso es para influir en el comportamiento de confección, pero repito que personalmente nunca hice esto antes), devolverá el valor de tipo definido por el usuario .

EDITAR

En realidad, el enlace proporcionado por los chicos en los comentarios es bueno:

bradwilson.typepad.com/blog/2009/02/…