Bonjour à tous !
J'ai un problème avec une classe dérivée.
J'ai une classe CThread qui dérive de la classe network_settings

La classe network_settings définit des variables qui sont tirées d'un fichier xml
La classe CThread utilise ces variables pour configurer une lien tcpclient.

Mon problème, c'est que les variables de network_settings, utilisée dans CThread me renvoie toujours la même erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
 
La référence d'objet n'est pas définie à une instance d'un objet

Voici la classe network_settings:
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
65
66
67
68
69
70
71
 
 
 
public interface Inetwork_settings
{
    int NS_networkTcpSend { get;}
    int NS_networkTcpReceive { get;}
    string NS_networkMd5Flag { get;}
    string NS_networkFilenameFlag { get;}
    string NS_networkRootDirectory { get;}
}
public class network_settings : Inetwork_settings
{
    private XmlDocument _xmlNetSettings = new XmlDocument();
    private StreamReader str;
 
    private int _networkTcpSend;
    private int _networkTcpReceive;
    private string _networkMd5Flag;
    private string _networkFilenameFlag;
    private string _networkRootDirectory;
 
 
    public network_settings()
    {
        try
        {
 
        this.str = File.OpenText(new Path().NetworkSettings);
        this._xmlNetSettings.Load(this.str);
        //Chargement des données du fichier xml dans les variables privées.
            this.NS_networkTcpSend = Convert.ToInt32(_xmlNetSettings.SelectSingleNode("/NETWORK_SETTINGS/TCP/TCPSEND").InnerText.Trim());
            this.NS_networkTcpReceive = Convert.ToInt32(_xmlNetSettings.SelectSingleNode("/NETWORK_SETTINGS/TCP/TCPRECEIVE").InnerText.Trim());
            this.NS_networkMd5Flag = _xmlNetSettings.SelectSingleNode("/NETWORK_SETTINGS/TCP/MD5FLAG").InnerText.Trim();
            this.NS_networkFilenameFlag = _xmlNetSettings.SelectSingleNode("/NETWORK_SETTINGS/TCP/FILEFLAG").InnerText.Trim();
            this.NS_networkFilenameFlag = _xmlNetSettings.SelectSingleNode("/NETWORK_SETTINGS/ROOTDIRECTORY").InnerText.Trim();
        }
        catch (Exception e)
        {
            new Error((Iuser)new user()).WriteError("Loading network settings", e);
        }
    }
    public int NS_networkTcpSend
    {
        get { return _networkTcpSend; }
        private set { _networkTcpSend = value; }
    }
    public int NS_networkTcpReceive
    {
        get { return _networkTcpReceive; }
        private set { _networkTcpReceive = value; }
    }
    public string NS_networkMd5Flag
    {
        get { return _networkMd5Flag; }
        private set { _networkMd5Flag = value; }
    }
    public string NS_networkFilenameFlag
    {
        get { return _networkFilenameFlag; }
        private set { _networkFilenameFlag = value; }
    }
 
    public string NS_networkRootDirectory
    {
        get { return _networkRootDirectory; }
        private set { _networkRootDirectory = value; }
    }
 
 
}
Et ici, voici une partie de la classe CThread qui pose problème:
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
 
 
public class CThread : network_settings
{
    private TcpClient _myClient;
    private StreamReader _nStr;
    private StreamWriter _nStw;
    private FileStream _fs;
    private StreamWriter _stw;
    private char[] _bytesReceived;
    private char[] _bytesSent;
 
    private string _rmf;
 
    private Iserveur _iserveur;
    private network_settings _nts;
 
    public CThread(Iserveur iserveur)
    {
           //Debug, on génère une erreur vide pour afficher NS_networkRootDirectory (variable de la classe network_settings)
    new Error(iserveur.S_iuser).WriteError("Debug: " +  NS_networkRootDirectory, new Exception());
...
...
J'ai donc plusieurs interrogations:
1) la classe CThread dérive de network_settings mais la constructeur de network_settings n'est jamais appelé. C'est pas bon ça ?

2) J'ai tenté de ne pas dérivé la classe CThread, et j'ai appelé dan sla constructeur de CThread une nouvelle instance de la classe network_settings.
J'obtiens toujours la même erreur

3) Quelle est la bonne méthode pour utiliser "des sortes de variables d'environnement" dans différentes classes ....

Merci pour vos réponses !!!