Ich habe zwei Projekte in meiner Lösung in Visual Studio 2010.
Projekt 1 enthält app.config
mit ConnectionString
.
Wie kann ich auf dieses ConnectionString
von Project 2 zugreifen?
Da beide dasselbe ConnectionString
verwenden, würde ich es vorziehen, nur eine Instanz in meiner Lösung zu haben.
Sie können die Dateien als Link zur Datei zu einem Ihrer Projekte hinzufügen.
Verwenden Sie Add an Existing Item
für das Projekt, dem Sie die Datei hinzufügen möchten - die Schaltfläche Open
hat einen kleinen Pfeil nach unten, wenn Sie darauf klicken, können Sie Add as Link
auswählen.
Dadurch wird die Datei als Link vom ursprünglichen Speicherort hinzugefügt, was bedeutet, dass Sie nur eine physische Datei haben.
Eine weitere Idee besteht darin, einen IoC-Container wie Ninject zu verwenden, der die Verbindungszeichenfolge in den Konstruktor der Klasse einfügt, in der er benötigt wird. Das ist dem Fabrikmuster nicht unähnlich.
Hinweis: Sie müssen Entity Framework nicht verwenden, um Ninject zu verwenden.
Siehe diesen Beitrag: Ninject - bindende Konstruktoren mit Argumenten / Verbindungszeichenfolge für Entity Framework
Neben der Dateiverknüpfung, die in der Antwort von Oded vorgeschlagen wird, können Sie eine Refactoring-Anwendung für die Verwendung einer gemeinsamen Datenzugriffsassembly, die eine DatabaseConnectionFactory-Klasse oder ähnliches enthält, in Betracht ziehen. Diese Assembly enthält die Verbindungszeichenfolge in den Einstellungen
Wenn es nur einen bestimmten Abschnitt gibt, den Sie teilen möchten (connectionStrings in Ihrem Fall), funktioniert die Verknüpfung nicht für Sie. Stattdessen könnten Sie etwas wie das tun:
%Vor%Wenn Ihr Projekt 2 eine Referenz von Projekt 1 hat, dann kann Project1 eine Klasse mit einer ConnectionString-Eigenschaft aufweisen.
Übrigens kann die "Klasse" die Verbindungszeichenfolge aus der app.config
lesenTags und Links .net c# connection-string