- Регистрация
- 28.07.2014
- Сообщения
- 825
- Благодарностей
- 653
- Баллы
- 93
Нехватает возможности создавать свою форму настроек для проекта, и возможность создавать свои классы в пространстве имен проекта с временем жизни project т.к.:
1. для больших проектов, в стандартной форме получается неудобоваримая простыня, без возможности расставить нормально, контролы табы хоть частично помогают но не сильно.
2. Частичный перенос настроек из проекта в проект занятие очень "увлекательное", там скопировал туда вставил, и так по каждому контролу, по каждому параметру.
3. Все настройки пишутся в переменные, затем их из строкового состояния надо переводить в нужный тип, чтобы не делать постоянно конвертацию, можно использовать project.context, но его использование имеет свои сильные ограничения, например dynamic не работает с enum, а если присваивать ему свой класс, то получаем проблемы в отладке, т.к.при малейшей правке кода, клас надо пересоздавать.
Я вижу это так, делается вкладка наподобии общий код с интерфейсами: вызов формы настроек, сериализация(сохранение) и десереализация(чтение) настроек.
Как-то так:
Итого у меня получается полная гибкость в управлении настройками:
1. Я могу создать любую форму настроек, сделать ее более удобной и информативной.
2. Перенос настроек выполняется в пару копипастов.
3. Я могу писать настройки как в project.Variables так и создать свой класс(ы) и держать настройки в них, и уйти от вечного конвертирования типов туда сюда.
4. Появится возможность создавать динамическиее классы которые будут нормально жить и в pojectMaker.
4. Упростится обращение к настройкам, появится возможность их группировать,
намного удобнее использовать чем
1. для больших проектов, в стандартной форме получается неудобоваримая простыня, без возможности расставить нормально, контролы табы хоть частично помогают но не сильно.
2. Частичный перенос настроек из проекта в проект занятие очень "увлекательное", там скопировал туда вставил, и так по каждому контролу, по каждому параметру.
3. Все настройки пишутся в переменные, затем их из строкового состояния надо переводить в нужный тип, чтобы не делать постоянно конвертацию, можно использовать project.context, но его использование имеет свои сильные ограничения, например dynamic не работает с enum, а если присваивать ему свой класс, то получаем проблемы в отладке, т.к.при малейшей правке кода, клас надо пересоздавать.
Я вижу это так, делается вкладка наподобии общий код с интерфейсами: вызов формы настроек, сериализация(сохранение) и десереализация(чтение) настроек.
Как-то так:
C#:
public class Settings : IZennoSettings
{
public class MySettingsClass
{
public string Path { get; set; }
public int Count { get; set; }
// и т.п.
}
private void OpenSettingsForm(IZennoPosterProjectModel project)
{
// Загружаем настройки
LoadSettings();
// Строим свою форму
// Сохраняем настройки
if (formOk)
SaveSettings();
}
// Сохраняем настройки в xml
private void SaveSettings(IZennoPosterProjectModel project)
{
project.Settings.setXml(MySettingsClass.ToXml());
}
// Считываем настройки xml
private void LoadSettings(IZennoPosterProjectModel project)
{
MySettingsClass.FromXML(project.Settings.getXml());
}
}
Итого у меня получается полная гибкость в управлении настройками:
1. Я могу создать любую форму настроек, сделать ее более удобной и информативной.
2. Перенос настроек выполняется в пару копипастов.
3. Я могу писать настройки как в project.Variables так и создать свой класс(ы) и держать настройки в них, и уйти от вечного конвертирования типов туда сюда.
4. Появится возможность создавать динамическиее классы которые будут нормально жить и в pojectMaker.
4. Упростится обращение к настройкам, появится возможность их группировать,
C#:
MySettings.Posts.Min
C#:
Convert.ToInt32(Toproject.Variables["MinPosts"].Value)
Последнее редактирование: