Re[2]: Конфигурирование .NET-приложений
От: BlezAlex  
Дата: 12.05.06 14:14
Оценка:
сохраняются только public свойства, добавь по свойству на каждую
переменную, кот. нужно сохранить, и будет работать
Posted via RSDN NNTP Server 2.0
Re[3]: Конфигурирование .NET-приложений
От: alexdp Украина  
Дата: 12.05.06 14:28
Оценка:
Здравствуйте, BlezAlex, Вы писали :

BA>сохраняются только public свойства, добавь по свойству на каждую

BA>переменную, кот. нужно сохранить, и будет работать

Добавил.
Результат тот же самій. То же содержимое файла.


public class Config
    {
        //[XmlTextAttribute]

        public string spTest
        {
            get{return strTest22;}
            set{strTest22=value;}
        }


        private string strTest22= "hello";
Re[4]: Конфигурирование .NET-приложений
От: BlezAlex  
Дата: 12.05.06 14:42
Оценка:
Любопытно
Скопировал твой первый исходник, все ОК, сохранилось.
Вобще я ошибся, это в propertyGrid отображаются только public свойства,
а сохранятся должны все..
Posted via RSDN NNTP Server 2.0
Re[5]: Конфигурирование .NET-приложений
От: alexdp Украина  
Дата: 12.05.06 15:05
Оценка:
"BlezAlex" <54356@users.rsdn.ru> сообщил/сообщила в новостях следующее:
news:1894893@news.rsdn.ru...
> Любопытно
> Скопировал твой первый исходник, все ОК, сохранилось.
> Вобще я ошибся, это в propertyGrid отображаются только public свойства,
> а сохранятся должны все..

Да уж.
Действительно любопытно.
Что ли и себе скопировать?
Posted via RSDN NNTP Server 2.0
Re[5]: Конфигурирование .NET-приложений
От: alexdp Украина  
Дата: 12.05.06 15:08
Оценка:
А как ты его вызываешь?
я вот так

Config cfg = new Config();

cfg.spTest="sasa";


cfg.Save();


"BlezAlex" <54356@users.rsdn.ru> сообщил/сообщила в новостях следующее:
news:1894893@news.rsdn.ru...
> Любопытно
> Скопировал твой первый исходник, все ОК, сохранилось.
> Вобще я ошибся, это в propertyGrid отображаются только public свойства,
> а сохранятся должны все..
Posted via RSDN NNTP Server 2.0
Re[6]: Конфигурирование .NET-приложений
От: BlezAlex  
Дата: 12.05.06 15:34
Оценка:
а я так:
Config.Instance.Save();


p.s. VS 2005
Posted via RSDN NNTP Server 2.0
Re[7]: Конфигурирование .NET-приложений
От: alexdp Украина  
Дата: 12.05.06 16:13
Оценка:
"BlezAlex" <54356@users.rsdn.ru> сообщил/сообщила в новостях следующее:
news:1894975@news.rsdn.ru...
>а я так:
> Config.Instance.Save();

Спасибо!
Заработало .
Буду завтра разбираться в чем біл поинт.
>
>
> p.s. VS 2005
Posted via RSDN NNTP Server 2.0
Re[3]: Конфигурирование .NET-приложений
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.05.06 18:58
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Неизвестные ноды вызовут ошибку.


Пробовал?
... << RSDN@Home 1.2.0 alpha rev. 646 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[8]: Конфигурирование .NET-приложений
От: Варвар США  
Дата: 14.05.06 10:42
Оценка:
Здравствуйте, alexdp, Вы писали:


A>"BlezAlex" <54356@users.rsdn.ru> сообщил/сообщила в новостях следующее:

A>news:1894975@news.rsdn.ru...
>>а я так:
>> Config.Instance.Save();

A>Спасибо!

A>Заработало .
A>Буду завтра разбираться в чем біл поинт.
>>
>>
>> p.s. VS 2005
Поинт в том, что у Config нет public constructor который бы инициализировал instance. При вызове config.Save(), instance равен null и строчка xs.Serialize(fs,instance) сериализует ничто...
Вообще, я бы запретил использование new добавив пустой private constructor и тогда Config config = new Config() выдавало бы ошибку компиляции заставляя пользоваться Config config = Config.Instance.
И вместо сердца каменный топор...
Re[4]: Конфигурирование .NET-приложений
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.05.06 03:48
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Пробовал?

Да вроде бы да. Я правда давно в последний раз занимался десериализацией на атрибутах.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Конфигурирование .NET-приложений
От: alexdp Украина  
Дата: 17.05.06 14:07
Оценка:
" Варвар " <19277@users.rsdn.ru> сообщил/сообщила в новостях следующее:
news:1896129@news.rsdn.ru...
> Здравствуйте, alexdp, Вы писали:
>
>
> A>"BlezAlex" <54356@users.rsdn.ru> сообщил/сообщила в новостях следующее:
> A>news:1894975@news.rsdn.ru...

> Поинт в том, что у Config нет public constructor который бы

> инициализировал instance. При вызове config.Save(), instance равен null и
> строчка xs.Serialize(fs,instance) сериализует ничто...
> Вообще, я бы запретил использование new добавив пустой private constructor
> и тогда Config config = new Config() выдавало бы ошибку > > > компиляции
> заставляя пользоваться Config config = Config.Instance.

Понятно. Спасибо.

Но все таки, где брать LocalUser.GetDatabasePath()
Posted via RSDN NNTP Server 2.0
Re[10]: Конфигурирование .NET-приложений
От: Варвар США  
Дата: 17.05.06 14:54
Оценка:
Здравствуйте, alexdp, Вы писали:

A>Но все таки, где брать LocalUser.GetDatabasePath()


Пример в статье выдернут из реального проекта в котором был класс LocalUser. Он тебе не нужен. Тебе нужен путь к директории в которой лежит конфигурационный файл. Обычно это таже директория в которой лежит exe. Можно воспользоваться Environment.CurrentDirectory.
И вместо сердца каменный топор...
Re[11]: Конфигурирование .NET-приложений
От: alexdp Украина  
Дата: 17.05.06 15:14
Оценка:
" Варвар " <19277@users.rsdn.ru> сообщил/сообщила в новостях следующее:
news:1902335@news.rsdn.ru...
> Здравствуйте, alexdp, Вы писали:
>
> A>Но все таки, где брать LocalUser.GetDatabasePath()
>
> Пример в статье выдернут из реального проекта в котором был класс
> LocalUser. Он тебе не нужен. Тебе нужен путь к директории в которой лежит
> конфигурационный файл. Обычно это таже директория в которой лежит exe.
> Можно воспользоваться Environment.CurrentDirectory.

Спасибо за объяснение.
CurrentDirectory вполне подойдет.
Posted via RSDN NNTP Server 2.0
Re[11]: Конфигурирование .NET-приложений
От: stele Россия www.stele.su
Дата: 17.05.06 15:22
Оценка:
Здравствуйте, Варвар, Вы писали:

В>Пример в статье выдернут из реального проекта в котором был класс LocalUser. Он тебе не нужен. Тебе нужен путь к директории в которой лежит конфигурационный файл. Обычно это таже директория в которой лежит exe. Можно воспользоваться Environment.CurrentDirectory.


Не надо учить плохому, лучше в Application Data создать папку от программы и там хранить конфиги. Но не рядом с исполняемым файлом — у пользователя может не хватить прав на запись. Если это конечно не приложение для себя.
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[12]: Конфигурирование .NET-приложений
От: Варвар США  
Дата: 17.05.06 16:31
Оценка:
Здравствуйте, stele, Вы писали:

S>Здравствуйте, Варвар, Вы писали:


В>>Пример в статье выдернут из реального проекта в котором был класс LocalUser. Он тебе не нужен. Тебе нужен путь к директории в которой лежит конфигурационный файл. Обычно это таже директория в которой лежит exe. Можно воспользоваться Environment.CurrentDirectory.


S>Не надо учить плохому, лучше в Application Data создать папку от программы и там хранить конфиги. Но не рядом с исполняемым файлом — у пользователя может не хватить прав на запись. Если это конечно не приложение для себя.

Для учебных целей сойдёт, а для реального приложения пути к конфигурационным файлам и типы соотвествуюших им классов прописываются в специальном секшене в app.config, для которого пишется специальный ConfigurationSectionHandler, которым пользуется специальный ConfigManager, управляющий всеми конфигами в апликации, в котором и имплементируется (один раз) превращение конфиг файла в объект соответствующего класса (и наоборот). Но это в реальном приложении, а для учебных целей сойдёт и то что описано в статье
Кстати... Как получть путь к Application Data?
И вместо сердца каменный топор...
Re[13]: Конфигурирование .NET-приложений
От: stele Россия www.stele.su
Дата: 17.05.06 17:36
Оценка:
Здравствуйте, Варвар, Вы писали:

В> Но это в реальном приложении, а для учебных целей сойдёт и то что описано в статье

В статье всё нормально. Я о другом. Я о том, что тебе предложили и ты согласился хранить файл с настройками рядом со своей программой. Лучше сразу тренироваться как в бою и не привыкать к порочной практике — тебе проще файл настроек рядом уронить, а проблему от этого получит сапорт и пользователь.

В>Кстати... Как получть путь к Application Data?


смотри System.Environment.GetFolderPath
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[14]: Конфигурирование .NET-приложений
От: Варвар США  
Дата: 17.05.06 18:03
Оценка:
Здравствуйте, stele, Вы писали:

В>> Я о том, что тебе предложили и ты согласился хранить файл с настройками рядом со своей программой.

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

В>>Кстати... Как получть путь к Application Data?

S>смотри System.Environment.GetFolderPath
Спасибо. Буду знать
И вместо сердца каменный топор...
Re[15]: Конфигурирование .NET-приложений
От: stele Россия www.stele.su
Дата: 17.05.06 18:13
Оценка:
Здравствуйте, Варвар, Вы писали:

В>Предложили не мне, а я.


Хм, и в правду ты предложил, обознался.

В>Как самый простой способ для тестовой програмки. Согласен, что не самый верный. Хотя бы потому что CurrentDirectory во время выполнения может и поменяться...


Точно.
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 648>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re: Конфигурирование .NET-приложений
От: sleepwalker Россия  
Дата: 07.05.07 07:05
Оценка:
Статья замечательная. А можно поподробней на счет вот этой штуки

private static XmlSerializer CreateSerializer()
{
  ArrayList res = new ArrayList();
  foreach(DictionaryEntry de in PluginManager.Instance.ConfigurablePlugins)
    res.Add(((IConfigurablePlugin)de.Value).Config.GetType());
  return new XmlSerializer(typeof(Config), (Type[])res.ToArray(typeof(Type)));
}


Хочется сделать универсальный Config-класс для различных приложений и Config, естественно, будет меняться от одного к другому. Как тут быть? Понятно что как-то конфигу надо говорить какие типы он будет сериализовывать. А вот дальше ...
Re[2]: Конфигурирование .NET-приложений
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 07.05.07 08:51
Оценка:
Здравствуйте, sleepwalker, Вы писали:

S>Хочется сделать универсальный Config-класс для различных приложений и Config, естественно, будет меняться от одного к другому. Как тут быть?


Простого ответа на этот вопрос у меня нет. А сложный на статью тянет, если не больше.
... << RSDN@Home 1.2.0 alpha rev. 675>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.