¿Cómo se establece C # establece una propiedad de solo lectura en la inicialización de objetos anónimos?

StackOverflow https://stackoverflow.com//questions/10650045

Pregunta

En C #, los inicializadores de objetos pueden establecer campos y propiedades públicas sin lectura.

Sin embargo, con tipos anónimos, las propiedades son de solo lectura.Entonces, ¿cómo se establece F .NET en la inicialización de objetos?

¿Fue útil?

Solución

El inicializador de objetos para tipos anónimos no se comporta como un inicializador de objetos normales.I.E. No establece las propiedades directamente.Se traduce en una llamada al constructor, que puede cambiar los campos readonal.

Otros consejos

Como todas las propiedades de solo lectura, pueden establecerse en el constructor.

Se genera un constructor para el tipo anónimo y los campos se fijan a través de él.

Adicionalmente se pueden configurar a través de la reflexión o mediante parches del código administrado después de la creación.

e.g.Simplemente obtenga los campos con las banderas de enlace adecuadas y luego enumeran y llame a SetValue con los parámetros correctos ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top