Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Settings in C# (https://www.delphipraxis.net/75734-settings-c.html)

Pseudemys Nelsoni 24. Aug 2006 08:35


Settings in C#
 
Moin,

ich habe in meinem Projekt eine Standardeinstellungsdatei "Settings.settings" erstellt, auf diese komme ich in der Hauptunit per "Properties.Settings.Default"... nun habe ich eine weitere Unit, doch dort gibt es den Namespace "Properties" gar nicht. Wie komme ich da ran?

Jürgen Thomas 24. Aug 2006 08:49

Re: Settings in C#
 
Zitat:

Zitat von Pseudemys Nelsoni
Moin,

ich habe in meinem Projekt eine Standardeinstellungsdatei "Settings.settings" erstellt, auf diese komme ich in der Hauptunit per "Properties.Settings.Default"... nun habe ich eine weitere Unit, doch dort gibt es den Namespace "Properties" gar nicht. Wie komme ich da ran?

Na, in der Regel über
Code:
using
sofern es sich in derselben Assembly befindet; andernfalls musst Du zusätzlich eine Referenz hinzufügen.
Jürgen

Pseudemys Nelsoni 24. Aug 2006 08:53

Re: Settings in C#
 
Moin Jürgen,

aber in meine rzweiten Unit scheint es den Namespace "Properties" gar nicht zu geben, d.h ich kann ihn auch per "using" nicht hinzufügen. :(

Elvis 24. Aug 2006 08:59

Re: Settings in C#
 
Und du hast nicht einmal in die Settings.cs reingeschaut? :roll:
Rate mal in welchem namespace die Klassen liegen, die dort vom Designer angelegt wurden.
Und rate mal warum du in deinem Code mit Properties.Settings auf die Klasse zugreifen musst. ;-)

btw: Ein non-Delphi Code file hat nicht viel mit einer Unit zu tun. ;-)

Pseudemys Nelsoni 24. Aug 2006 09:06

Re: Settings in C#
 
Moin Elvis,

ich habe gar keine "Settings.cs" Datei, hm *g*....

Zitat:

Rate mal in welchem namespace die Klassen liegen, die dort vom Designer angelegt wurden.
Und rate mal warum du in deinem Code mit Properties.Settings auf die Klasse zugreifen musst.
Sagst du es mir?^^ Bin absolut planlos hier.

Zitat:

btw: Ein non-Delphi Code file hat nicht viel mit einer Unit zu tun.
? :wink: .

Generell wenn ich eine neue Settings Datei meinem Projekt hinzufüge, weis sich nicht wie ich aus meinen .cs Dateien heraus, auf diese zugreifen kann. Hab nämlich für meine andere Unit eine etra Settingsdatei angelegt. Ich komm nur nicht dran :mrgreen:

Interceptor 24. Aug 2006 09:21

Re: Settings in C#
 
Hey,

möchtest du ne ganz normale Konfigurationsfile? Falls ja, würde ich eher die App.config nehmen.
Der Aufbau ist in etwa so:
XML-Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="username" value="foo"/>
    <add key="password" value="foo"/>
  </appSettings>
</configuration>
Wichtig dabei ist, dass deine keys innerhalb der <appSettings> Node steht.
Der Zugriff ist denkbar einfach:
Code:
string username = System.Configuration.ConfigurationManager.AppSettings["username"];
string password = System.Configuration.ConfigurationManager.AppSettings["password"];
Achja, um das so zu benutzen, musst du eine Referenz zu deinem Projekt hinzufügen, nämlich System.configuration (man beachte das kleine c)

Edit: Das tolle dran ist, dass der Zugriff auch garantiert von jeder Klasse auch funzt ;)

Elvis 24. Aug 2006 09:46

Re: Settings in C#
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Pseudemys Nelsoni
Moin Elvis,

ich habe gar keine "Settings.cs" Datei, hm *g*....
<snip/>
Sagst du es mir?^^ Bin absolut planlos hier.

Oki, Settings.Designer.cs oder einfach ein Rechtsklick auf deine Settings im Code und "Goto Definition".
Ich habe dir mal einen Screenie angehängt wo du im Class view auch sehen kannst wie der name space heißt...
Zitat:

Generell wenn ich eine neue Settings Datei meinem Projekt hinzufüge, weis sich nicht wie ich aus meinen .cs Dateien heraus, auf diese zugreifen kann. Hab nämlich für meine andere Unit eine etra Settingsdatei angelegt. Ich komm nur nicht dran :mrgreen:
Die Settings class ist internal. Du kannst nur innerhalb deiner Assembly darauf zugreifen. Du kannst aber in der AssemblyInfo.cs mit InternalsVisibleTo (siehe SDK Docs) andere Assemblies auflisten, die danach Zugriff auf internal Bezeichner haben.

@Interceptor, so hatte man das noch im alten .Net 1.1 gemacht. ;)
Mit 2.0 und dem VS hat man immer eine typensichere Wrapperclass für Settings.

Khabarakh 24. Aug 2006 10:01

Re: Settings in C#
 
@Interceptor: Die neuen, netten Settings-Dateien von VS sind ein typensicherer Wrapper um app.config + user.config.


Zitat:

Zitat von Pseudemys Nelsoni
Moin Elvis,

ich habe gar keine "Settings.cs" Datei, hm *g*....

Aber eine SettingsX.Designer.cs, die du beim Erweitern des Kontens deiner Settings-Datei erblicken kannst ;) . In dieser wiederum kannst du den Namespace (normalerweise der Root-Ns des Projektes) und das Schlüsselwort internal finden :zwinker: .

[edit]d'oh, etwas langsam :stupid: . Wenigstens fühle ich mich jetzt bestätigt ^^ .
[/edit]
[edit id="1"]Ok, jetzt wirds lustig :gruebel: . Scheint so, als ob nur die Express-Version sich den Properties-Namespace spart und alles in den Root-Ns haut.
[/edit]

Interceptor 24. Aug 2006 10:08

Re: Settings in C#
 
Zitat:

@Interceptor, so hatte man das noch im alten .Net 1.1 gemacht. Wink
Mit 2.0 und dem VS hat man immer eine typensichere Wrapperclass für Settings.
Achwas, wer braucht schon typensicherung bei konsequenter Programmierung :twisted:
Ich arbeite in ner Softwareschmiede, und sind natürlich auch aufs 2er Framework umgestiegen. Aber wir benutzen immer noch diese Art der Konfiguration, gab bisher noch nie Probleme...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz