Zunächst einmal handelt es sich um eine Bildungsfrage - nicht um etwas, das ich in einer produktiven Anwendung umsetze, da ich die Grundlagen von C# lerne.
Derzeit habe ich eine Lösung mit 2 (eigentlich 3, aber eines ist Unit Testing) Projekten;
- Formular
- Klassenbibliothek
In der Klassenbibliothek habe ich eine Klasse namens Database.cs
, die mit einer MySQL-Datenbank kommuniziert. Ich kommuniziere nicht direkt mit dieser Database.cs
-Klasse, sondern andere Klassen innerhalb der Klassenbibliothek tun dies (zum Beispiel Products.cs
). Allerdings benötige ich Anmeldeinformationen, um eine Verbindung zu dieser MySQL-Datenbank herzustellen, und ich bin mir nicht sicher, wie ich dies sicher tun soll.
Speichern Sie es innerhalb der Klassenbibliothek / codieren Sie die Anmeldeinformationen innerhalb der Klasse.
Dies würde für mich keinen Sinn machen, da ein Benutzer leicht die DLL abrufen kann und er technisch gesehen die Anmeldeinformationen für die Datenbank hat.
Geben Sie die Anmeldeinformationen über das Formular an eine Klasse weiter (wie Products.cs
) und diese Klasse gibt sie weiter, während sie das Datenbankobjekt initialisiert
Könnte funktionieren, habe es versucht und es funktioniert, aber ich bin mir nicht sicher, ob dies der "sauberste" Weg ist.
Schreiben Sie eine statische Klasse, die Eigenschaften mit den Anmeldeinformationen enthält
Wenn ich diese statische Klasse wieder innerhalb der Klassenbibliothek erstelle, bin ich so ziemlich genauso wie in meinem ersten Beispiel. Wenn ich diese statische Klasse im Form
erstellen würde, müsste ich eine Referenz zum Formularprojekt aus meiner Klassenbibliothek hinzufügen (nicht der Weg, den ich mir wünsche).
Ich habe versucht, nach Informationen zu suchen, aber offensichtlich mache ich etwas falsch. Gibt es noch einen anderen Weg, dies zu tun?