さて、あなたはシングルトンアプローチを取りに行きます:
VB.NET:
Public Class DBase
#Region "Singleton"
Private Shared instances As New Dictionary(Of [String], DBase)()
Public Shared Function GetInstance(dbname As [String]) As DBase
If Not instances.ContainsKey(dbname) Then
instances(dbname) = New DBase(dbname)
End If
Return instances(dbname)
End Function
#End Region
Private connection As MySqlConnection
Private Sub New(dbase As [String])
Me.connection = New MySqlConnection()
Me.connection.ConnectionString = "...connection string implementing dbase..."
Me.connection.Open()
End Sub
Protected Overrides Sub Finalize()
Try
Me.connection.Close()
Finally
MyBase.Finalize()
End Try
End Sub
#Region "Database Methods"
' add the various method calls to the database here.
#End Region
End Class
'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Twitter: @telerik, @toddanglin
'Facebook: facebook.com/telerik
'=======================================================
C#
public class DBase
{
#region Singleton
private static Dictionary<String, DBase> instances = new Dictionary<String, DBase>();
public static DBase GetInstance(String dbname)
{
if (!instances.ContainsKey(dbname))
{
instances[dbname] = new DBase(dbname);
}
return instances[dbname];
}
#endregion
private MySqlConnection connection;
private DBase(String dbase)
{
this.connection = new MySqlConnection();
this.connection.ConnectionString = "...connection string implementing dbase...";
this.connection.Open();
}
~DBase()
{
this.connection.Close();
}
#region Database Methods
// add the various method calls to the database here.
#endregion
}
次に、どこからでもアクセスして呼び出しを行うことができます。
VB.NET
Dim db As DBase = DBase.GetInstance("DEMO")
Dim name As [String] = db.GetUsernameFromEmail("jsmith@contoso.com")
C#
DBase db = DBase.GetInstance("DEMO");
String name = db.GetUsernameFromEmail("jsmith@contoso.com");
非常に粗雑ですが、仕事を成し遂げます。検証、接続チェック、クリーンアップ、および (場合によっては) スレッド セーフを使用して、さらに複雑にすることもできますが、例は簡潔でわかりやすいものにします。