Estado de conservación en un método de extensión

El equipo de C # ha considerado anteriormente agregar propiedades de extensión, eventos, etc. a C #.

Por Eric Lippert:

http://blogs.msdn.com/b/ericlippert/archive/2009/10/05/why-no-extension-properties.aspx

Sin embargo, para que estas características sean útiles, tendrían que poder almacenar algún tipo de estado nuevo con un objeto. Parece que la única forma de hacer esto sería usar un diccionario y asociar cada instancia de un objeto con el estado adicional que sea.

Sería útil si fuera posible copiar esta funcionalidad "manualmente" creando mi propio diccionario (y tal vez los métodos de extensión obtener / configurar). Sin embargo, para asociar un determinadoejemplo de un objeto con algún estado, necesitaría hacer un hash del realreferencia al objeto. En otro idioma, puede hacer esto mediante el hashing de la ubicación de su memoria, sin embargo, en C # no se garantiza que se mantenga constante, y el uso de códigos no seguros para lograr esta función no es lo ideal.

¿Alguien sabe si es posible obtener alguna referencia de hashable a un objeto que no cambie a medida que cambia el estado interno del objeto? Obviamente, existe algún mecanismo interno para realizar un seguimiento de los objetos individuales independientemente de la ubicación de su memoria, pero no estoy seguro de si eso está expuesto al código de usuario.

Nota: Simplemente el hashing del objeto en sí no funcionará en absoluto, porque GetHashCode () depende del estado interno de un objeto y no decual objeto es.

Gracias por cualquier idea

Respuestas a la pregunta(2)

Su respuesta a la pregunta