Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2010, 11:48   #1
Davidow
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 15
По умолчанию Сохранения параметров программы

Добрый день господа!!!

Во многих программах есть пункт "Сохранить Проект". Мне
хочется написать такую программу на примере чегото элементарного.

Тоесть я открываю созданный мной проект, выставляю в нём различные параметры, например
голочки в CheckedListBox и сохраняю проект...

После откываю его с сохранёнными параметрами.

Мне кажется в такой штуки лучше всего использовать XML.

Презнаюсь чесно, его я не очень хорошо знаю.

Помогите пожалуйста со стартом.
Davidow вне форума Ответить с цитированием
Старый 09.02.2010, 12:11   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Очень много обсуждалось на форуме, например тут
Hollander вне форума Ответить с цитированием
Старый 16.02.2010, 15:54   #3
Davidow
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 15
По умолчанию

добрый день. Я просмотрел исходной code и пытаюсь серилизовать string array. Не получается, выдаёт ашибку...

Взгленити пожалуйста


Код:

namespace Options
{
	public class Options
	{
		private string[,] param;
		public string[,] Param
		{
			get { return param; }
			set { param = value; }
		}

		[NonSerialized]
		private static object instanceSync = new object();

		[NonSerialized]
		private static Options instance;

		[XmlIgnore]
		public static Options Instance
		{
			get
			{
				if (instance == null)
				{
					lock (instanceSync)
					{
						if (instance == null)
							instance = Load(FilePath);
					}
				}

				return instance;
			}
		}

		public static string FilePath
		{
			get
			{
				return Path.Combine(
					c:\\,"options.xml");
			}
		}
	

		public void Save()
		{
			Save(FilePath);
		}
		

		private void Save(string filePath)
		{
			XmlSerializer serializer = new XmlSerializer(typeof(Options)); // EXEPTION InvalidOperationExeption... Oshibka pri otrazhenii Tipa Option ?!			using (FileStream stream = new FileStream(filePath, FileMode.Create))
				serializer.Serialize(stream, this);
		}


		
}
}
Davidow вне форума Ответить с цитированием
Старый 16.02.2010, 16:08   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

XmlSerializer не имеет возможности сериализовать многомерные массивы. Есть пара вариантов выхода:
1. Использовать BinaryFormatter - пример
2. Отказаться от многомерных массивов. Можно путем создание нового класса с 2-мя параметрами. А в главном использовать List<Новый_Класс>.

Лично мне по душе 2 вариант.
Hollander вне форума Ответить с цитированием
Старый 16.02.2010, 16:23   #5
Davidow
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 15
По умолчанию

большое спасибо.

Не хочу показатся наглым, а можно не большой пример к 2 предложению?
Davidow вне форума Ответить с цитированием
Старый 16.02.2010, 16:52   #6
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Код:
public class Params
{
public int Param1;
public int Param2;
}
В твоем классе:
Код:
public class Options
{
	private List<Params> param;
	public List<Params> Parameters
	{
		get { return param; }
		set { param = value; }
	}
...
}
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранения картинок в БД. Ole. soccer БД в Delphi 1 12.05.2009 14:21
Сохранение параметров программы... Roof Общие вопросы Delphi 10 11.10.2007 08:22
Проблемма сохранения потоков в файл EvgenMailRu Помощь студентам 1 03.09.2007 13:56
Сохранения программы niva622 Помощь студентам 8 21.01.2007 09:10