Неизменные типы как свойства конфигурации

Это полезно при загрузке построчного принтера, так, чтобы Вы знали, сколько страниц листинг кода, который Вы собираетесь распечатать, использует.;)

6
задан Mark Seemann 18 September 2009 в 11:33
поделиться

3 ответа

Вы можете использовать некоторые TypeConverters , чтобы помочь процессу (ссылка на System.Configurations.ConfigurationConverter).

Настоящий вопрос в том, почему вы хотите причинить себе столько неприятностей? Бывают случаи, когда лучше лечь и принять это, чем сопротивляться. Некоторые части фреймворка разочаровывают, если вы пытаетесь сделать это любым другим способом, кроме специально разработанного для вас ....

1
ответ дан 17 December 2019 в 04:49
поделиться

Лично я думаю, вам лучше отделить данные в разделе конфигурации (который, по-видимому, требует быть изменяемым), и как вы представляете это в своей объектной модели. Ничто не мешает вам иметь два представления - простую (DTO / POCO) версию для конфигурации и вашу пользовательскую версию (в данном случае неизменяемую) для реального использования в вашем приложении.

4
ответ дан 17 December 2019 в 04:49
поделиться

Я бы отказался от этого проклятия, потому что эта идея обречена на провал. Все обработчики раздела конфигурации должны иметь конструктор по умолчанию (без параметров). Это не относится к вашему неизменяемому объекту.

Самое простое решение - поставить другой уровень абстракции между конфигурацией и вашим приложением. Вы можете применить шаблон поставщика конфигурации, который преобразовал бы изменяемые классы раздела конфигурации «бесплатно для всех» в неизменяемые классы, которые затем потреблялись бы вашим приложением.

Я должен сказать, что именно так должны быть разделы конфигурации используемый. Я знаю, что есть опция возврата назад, но я никогда раньше ее не использовал.

Код может выглядеть примерно так:

0
ответ дан 17 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: