🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #22157

Re: Brak uprawnień do zapisu konfiguracji

#22157
From: Zbigniew Malec
Date: Thu, 12 May 2011 22:32
100 lines
3772 bytes
On Sun, 8 May 2011 03:52:36 +0200, Zbigniew Malec wrote:

> Witam,
> mam problem z zapisem konfiguracji aplikacji. Chciałem skorzystać z
> ConfigurationManagera w jego najprostszej formie oraz konfiguracji
> zapisywanej w katalogu domowym użytkownika. W tym celu napisałem poniższy
> kod:

Dobra, już nie mam tego problemu. Zmieniłem podejście i teraz mam inny,
jednak ciągle związany z konfiguracją. Mianowicie zdefiniowałem sobie
sekcję konfiguracyjną:

using System.Configuration;

namespace TopazMSS.Config
{
    class ProgramConfigurationSection : ConfigurationSection
    {
        [ConfigurationProperty("Mute", IsRequired = false)]
        public MuteElement Mute
        {
            get
            {
                MuteElement mute = (MuteElement)this["mute"];
                if (mute == null)
                {
                    mute = new MuteElement();
                    base["mute"] = mute;
                }

                return mute;
            }
        }
    }
}

Element konfiguracji MuteElement
using System.Configuration;

namespace TopazMSS.Config
{
    class MuteElement : ConfigurationElement
    {
        [ConfigurationProperty("value")]
        public bool Value
        {
            get
            {
                return (bool)this["value"];
            }

            set
            {
                this["value"] = value;
            }
        }
    }
}

Kod zapisujący

        public void Store()
        {
            Configuration configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming);
            ProgramConfigurationSection configSection =
configuration.GetSection("configuration") as ProgramConfigurationSection;

            if (configSection == null)
            {
                configSection = new ProgramConfigurationSection();
                configSection.SectionInformation.AllowExeDefinition =
ConfigurationAllowExeDefinition.MachineToRoamingUser;
                configuration.Sections.Add(CONFIGURATION_SECTION,
configSection);
            }

            configSection.Mute.Value = true;
            configuration.Save(ConfigurationSaveMode.Full);
        }

i dostaję wyjątek NullReferenceException w linii:
MuteElement mute = (MuteElement)this["mute"];

Z tego co wyśledziłem, to rzucane jest to z wnętrza this["mute"]

Juz trzeci dzień (wieczór) nad tym siedzę i nie mam pomysłu, co może być
nie tak.

A w ogóle to ten cały Visual 2010 Express (czy jak mu tam), to jakiś dziwny
jest. Jak odpalam tę aplikację przez ctrl+F5 to wykłada się na samym
początku, przed pokazaniem formularza, a jak odpalam z F5 to formularz się
pokazuje. Tak jakby skompilowany kod był inny dla debug i release (w sensie
mój kod). Da sie jakos wymusić rebuild (F6? shift+F6?)? Bo już mnie szlag
trafia.


-- 
Pozdrawiam
Zbyszek Malec
Technical Details
Message-ID: <85qmu0l1pq3x$.12zwn0advgfc3$.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <oe5y12200h6m.7mtzo8a4nqsa.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Zbigniew Malec <alpha@invalid.invalid>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: Brak uprawnień do zapisu konfiguracji
Date: Fri, 13 May 2011 00:32:42 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 100
Message-ID: <85qmu0l1pq3x$.12zwn0advgfc3$.dlg@40tude.net>
References: <oe5y12200h6m.7mtzo8a4nqsa.dlg@40tude.net>
NNTP-Posting-Host: 89-75-68-72.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1305239562 10767 89.75.68.72 (12 May 2011 22:32:42 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Thu, 12 May 2011 22:32:42 +0000 (UTC)
X-User: zbyszanna
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit