Zum Inhalt springen

Name von My.Settings ermitteln


Hyper1on

Empfohlene Beiträge

Hallo zusammen,

ich suche nach einer Möglichkeit mit Hilfe eines definierten Wertes in einem Setting den entsprechenden Namen des Settings zu ermitteln.

Nehmen wir beispielsweise an ich habe im Programm den Hostname ermittelt, welcher gleichzeitig der Wert eines Settings ist.

Also: My.Settings.Arbeitsplatz_1 = Hostname, wobei Arbeitsplatz_1 der Name des Settings ist und der Hostname des Systems der zugeordnete Wert.

Wie kann ich nun mit Hilfe des Wertes Hostname den Namen des Settings ( Arbeitsplatz_1 ) ermitteln?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm...


            string SettingsName = string.Empty;


            Properties.Settings.Default.Setting3 = "127.0.0.1";

            Properties.Settings.Default.Save();


            foreach (SettingsPropertyValue currentProperty in Properties.Settings.Default.PropertyValues)

            {

                if (currentProperty.PropertyValue.ToString() == "127.0.0.1")

                {

                    SettingsName = currentProperty.Name;

                    break;

                }

            }

Bearbeitet von SeToY
Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei dem Code mault der Kompiler leider rum.
Das ist natürlich eine hilfreiche Fehlerbeschreibung ;)

Die Umsetzung nach VB.NET sollte nicht allzu schwierig sein, wenn du den Sinn des Code verstehst.

Hier mal ein Ansatzpunkt:

For Each...Next Statement (Visual Basic)

Ist dir klar, dass die Zuordnung Wert -> Name nicht eindeutig ist?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mh, Wert zu Name Zuordnung ist nicht eindeutig?

Beispiel:

Name: Arbeitsplatz_1

Typ: String

Wert: Hostname_1

Name: Arbeitsplatz_2

Typ: String

Wert: Hostname_2

Den Hostnamen kann ich im Netz nur einmalig haben und der Name des Settings kann auch nur einmal vorhanden sein.

Der Wert des Settings kann sich natürlich ändern stellt aber bei der dann stattfindenden Zuordnung kein Problem dar.

Vielleicht zum Hintergrund ein paar Infos zum Programm:

Das Programm erhält vom Benutzer eine Nummer, welche das Programm dazu veranlasst eine Bild und einen Text anzuzeigen. Zusätzlich dazu kann der Benutzer eine Bemerkeung eintragen welche dann gesammelt per Mail verschickt werden.

Die Betreffzeile der Mail soll hierbei die Arbeitsplatzbezeichnung enthalten von der die Mail gesendet wurde. Daher auch die Zuordnung Hostname zu Arbeitsplatz.

Da ich die Arbeitsplatzbezeichnungen als Settings definiert habe welche als Wert den Hostnamen enthalten ( falls mal ein Rechner getauscht werden muss über Menü erreichbar ) würde ich gerne die vorhandenen Settings verwenden um vom Hostnamen auf die Arbeitsplatzbezeichnung zuzugreifen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, mit einigen lesen und dem ein oder anderen dummen Frage stellen bin ich nun bei folgendem rausgekommen:

For Each SettingsProp As System.Configuration.SettingsProperty In My.Settings.Properties

If SettingsProp.PropertyType Is GetType(String) Then

Dim Workplace As String = DirectCast(My.Settings.Item(SettingsProp.Name), String)


If Workplace = Hostname.ToUpper Then

MsgBox(SettingsProp.Name & " -> " & Workplace)


message.Subject = "Materialanforderung - Arbeitsplatz: " & SettingsProp.Name


Else

End If

End If

Next

Funktioniert bisher super!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mh, Wert zu Name Zuordnung ist nicht eindeutig?
Nein, im allgemeinen Fall ist sie das nicht. Es gibt keinen automatischen Mechanismus, der das sicherstellt. Du musst dich selbst darum kümmern, dass die Eindeutigkeit erhalten bleibt. Jeder Zugriff auf die Settings muss eine Konsistenzprüfung beinhalten.

Den Hostnamen kann ich im Netz nur einmalig haben und der Name des Settings kann auch nur einmal vorhanden sein.
Mag ja sein. Aber deine Settings sind nur eine Abbildung der Hostnamen. Kannst du die Hostnamen und die Settings permanent synchron halten?
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...