Bonjour,

Lorsqu'on host un service comment se fait-il qu'on ne passe pas par son constructeur ?

Ce n'est pas possible ?

Dans le cas ci-dessous, je host le service Collecte et j'aurais aimé passer par le constructeur de Collecte à chaque fois qu'on le Host.

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Program
    {
        static void Main(string[] args)
        {
            using (ServiceHost host = new ServiceHost(typeof(Collecte)))
            {
                host.Open();
                Console.WriteLine("Serveur Collecte Started");
                Console.WriteLine("Registring to Serveur Enregistrement");
                Console.ReadLine();
                host.Close();
            }
        }
    }

Code C# : 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
 
    public class Collecte : ICollecteClient, ICollecteEnregistrement
    {
        private int _serveurId;
 
        public Collecte()
        {
            using (ChannelFactory<IEnregistrement> channelFactory = new ChannelFactory<IEnregistrement>("Enregistrement"))
            {
                IEnregistrement proxyEnregistrement = channelFactory.CreateChannel();
                string adress = proxyEnregistrement.Register();
 
                adress = adress.Replace("net.tcp://localhost:","");
                adress = adress.Replace("/Enregistrement","");
 
                _serveurId = Convert.ToInt32(adress);
            }
        }
 
        public Collecte(int serveurId)
        {
            _serveurId = serveurId;
        }
 
        public int GetBestAnswer(int reponseId)
        {
            throw new NotImplementedException();
        }
    }