Как C # установить свойство только для чтения на анонимной инициализации объекта

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

Вопрос

в C #, инициализаторы объекта могут устанавливать общедоступные полей и свойства только для чтения.

Однако с анонимными типами свойства только для чтения.Итак, как .NET устанавливает их на инициализацию объекта?

Это было полезно?

Решение

Инициализатор объекта для анонимных типов не ведет себя как обычный инициализатор объекта.I.e. Это не устанавливает свойства напрямую.Он переводится в звонок в конструктор, который может изменить поля readonly.

Другие советы

Как и все свойства только для чтения, они могут быть установлены в конструкторе.

Конструктор для анонимного типа генерируется с ним, и поля, установленные через него.

Кроме того, они могут быть установлены через отражение или через исправление управляемого кода после создания.

e.g.Просто получите поля с соответствующими флагами привязки, а затем перечисляйте и вызовите setValue с правильными параметрами ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top