Article View: alt.pl.comp.lang.csharp
Article #22157Re: Brak uprawnień do zapisu konfiguracji
From: Zbigniew Malec
Date: Thu, 12 May 2011 22:32
Date: Thu, 12 May 2011 22:32
100 lines
3772 bytes
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-mailReferences:
<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