salut à tous , j'utilise spring.net et j ai un singleton de connexion en base de données je veux réaliser une interface pour ce singleton pour l'utiliser dans d'autre classe via IApplicationContext
mais le problème que je peux pas utiliser Instance comme une classe ConnexionDao qui possède ces fonctions !

Singleton connexion base:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
class ConnexionDao : IConnexion
    {
        private DbConnection m_SqlCnx = null;
 
        private static ConnexionDao s_Instance;
        private static object s_InstanceLocker = new object();
 
        private ConnectionStringSettings m_CnxStringSettings;
 
       public ConnectionStringSettings CnxStringSettings
        {
            get { return m_CnxStringSettings; }
            set { m_CnxStringSettings = value; }
        }
 
        // Singleton 
        public static ConnexionDao Instance
        {
            get
            {
                lock (s_InstanceLocker)
                {
                    if (s_Instance == null)
                    {
                        s_Instance = new ConnexionDao();
                    }
 
                    return s_Instance;
                }
            }
        }
    // Cette méthode créé une connexion à la BDD et la renvoit 
        public DbConnection GetSqlConnection() 
        { 
            DbProviderFactory factory = 
            DbProviderFactories.GetFactory(CnxStringSettings.ProviderName); 
 
            if (m_SqlCnx == null) 
            { 
                m_SqlCnx = factory.CreateConnection(); 
            } 
 
            m_SqlCnx.ConnectionString = CnxStringSettings.ConnectionString; 
 
            if (m_SqlCnx.State == System.Data.ConnectionState.Closed) 
            { 
                m_SqlCnx.Open(); 
            } 
 
            return m_SqlCnx; 
        } 
 
        public void CloseConnection() 
        { 
            if (this.m_SqlCnx != null) 
            { 
                if (this.m_SqlCnx.State != System.Data.ConnectionState.Closed) 
                { 
                    this.m_SqlCnx.Close(); 
                } 
            } 
        } 
    }
interface IConnexion:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
interface IConnexion
    {
        bool test_connex();
        DbConnection GetSqlConnection();
        ConnexionDao Instance() {}
         void CloseConnection();
 
    }
la classe du test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 private void Form1_Load(object sender, EventArgs e)
        {
 
            IConnexion ico = (IConnexion)ctx.GetObject("infconnx");
 
// l'erreur ici, l'IDE ne reconnais pas  la fonction  GetSqlConnection  comme une fonction de la  classe Instance         
  DbConnection cnx= ico.Instance.GetSqlConnection();
 
             version_textBox.Text = cnx.ServerVersion;
 
        }