У меня есть класс с различными общедоступными свойствами, который я разрешаю пользователям редактировать через сетку свойств. Для сохранения этот класс также сериализуется/десериализуется в/из файла XML через DataContractSerializer.Как я могу сделать версию класса только для чтения?
Иногда я хочу, чтобы пользователь мог сохранить (сериализовать) изменения, внесенные им в экземпляр класса. Однако в других случаях я не хочу, чтобы пользователь сохранял их изменения, и должен видеть все свойства в сетке свойств как только для чтения. Я не хочу, чтобы пользователи вносили изменения, которые они никогда не смогут сохранить позже. Подобно тому, как MS Word позволяет пользователям открывать документы, которые в настоящее время открыты кем-то другим, но только как только для чтения.
У моего класса есть логическое свойство, которое определяет, должен ли класс быть доступен только для чтения, но можно ли использовать это свойство для динамического добавления атрибутов только для чтения к свойствам класса во время выполнения? Если это не альтернативное решение? Должен ли я переносить свой класс в класс обертки только для чтения?
Спасибо! К сожалению, вариант 2 не работает для меня, потому что сетка свойств будет использовать отражение для определения реальных свойств интерфейса, на самом деле не только для чтения. Так что кажется, что вариант 3 - лучший ответ для меня. Хотя мне нравится ваше предложение объединить варианты 2 и 3. –
Я не могу выразить, как этот ответ является одним из самых лаконичных и полных, которые я нашел в Интернете. –