Autor Beitrag
kingdave2nd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Fr 13.11.09 13:57 
Hallo zusammen,

ich hoffe ich habe das Thema hier korrekt platziert. Ich habe folgende Zielsetzung:

Zitat:

Entwicklung eines Forms, das in die app.config sowohl userSettings als auch AppSettings schreiben kann. Die AppSettings sollen nur zu schreiben sein, wenn der User schreibende Rechte in das Programmverzeichnis hat. Hintergrund der Anforderung ist, das ein Administrator die defaults der Anwendung komfortabel über eine Oberfläche anpassen soll.


Ich habe mittlerweile rausgebracht, das das Schreiben von appSettings nativ nicht unterstützt ist und habe mir einen eigene Klasse geschrieben, die die Fileberechtigungen prüft und direkt gegens XML schreibt. Soweit alle paletti.
Jetzt möchte ich gerne, wenn ein normaler User den Wizard öffnet, feststellen, was sind userSettings und was sind appSettings, und nur die Controls aktivieren, die mit den userSettings zu schaffen haben.

An die Settings kommt man ja, indem man z.B. auf die Property "BackgroundColor" mit "Settings.Default.BackgroundColor" zugreift. Aaaber: ich finde nirgendwo eine Eigenschaft, die mir erzählt, ob es sich dabei um einen app oder userSettings handelt. Hat irgendwer nen Tipp für mich?

Gruss Dave

Moderiert von user profile iconKha: Code- durch Quote-Tags ersetzt
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 13.11.09 17:08 
AFAIR leiten diese VS-Settings doch von SettingsBase ab. Darüber bekommst du das entsprechende SettingsProperty-Objekt, IsReadOnly dürfte dann bei App-Settings true sein.

_________________
>λ=
kingdave2nd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: So 15.11.09 00:32 
mmh wenn ich ehrlich bin komme ich noch nicht drauf. Die Settings selber haben nur die Eiggenschaft, die sie als jeweilger Datentyp haben (also eine Colordefintion hat dasnn Farbeigenschaften, ein string wert die des Strings usw.).
Aber wie komme ich an eine Beschreibung der Poperties selber? Besser gefragt, wie setze ich die SettingsBase Klasse korrekt ein?

Gruss David
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 15.11.09 00:47 
user profile iconkingdave2nd hat folgendes geschrieben Zum zitierten Posting springen:
Aber wie komme ich an eine Beschreibung der Poperties selber?
Große Überraschung: Über die Properties-Eigenschaft deines Setting-Objekts ;) .

_________________
>λ=
kingdave2nd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mi 18.11.09 09:55 
Sorry, da kam mir doch so nervige Projektarbeit dazwischen ;-), daher konnnte ich nicht früher antworten.
Also, ich habe folgendes ausprobiert:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
foreach(SettingsProperty p in  MyProduct.Properties.SettingsBlsConnection.Default.Properties)
{
  string t = p.Name;
  bool r = p.IsReadOnly;
}


So nun kommts fies: Egal ob es sich um einen Application oder um eine User Property handelt, "p.ReadOnly" ist immer false.

Langsam aber sicher verzweifel ich :roll:

Gruss Dave
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 18.11.09 19:19 
Hm. Dann nimm den todsicheren Weg: Prüfe auf UserScopedSettingAttribute (s. System.Configuration.LocalFileSettingsProvider.IsUserSetting im Reflector).

_________________
>λ=
kingdave2nd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mi 18.11.09 23:45 
Hey damit tut. Genau das was ich brauchte.

Let make KillerApps now... ;-)

gruss Dave