Bonjour à tous,

Ceci est une question concernant les bases en C# (je viens du monde VB et je viens de me mettre au C# histoire d'etre ok sur les deux langages).

J'ai une classe abstraite "BaseService" comme suit
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
abstract class BaseService
    {
        protected IBaseService _service;
 
        public BaseService(IBaseService ioc)
        {
            _service = ioc;
        }
 
public IList<Object> GetAll(IBaseService ioc)
        {
            return _service.GetAll();
        }
 
    }
J'ai une classe "SProducts" qui hérite de "BaseService"
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
 
class SProducts : BaseService
    {
        new protected IProducts _service;
 
        public SProducts(IProducts ioc)
        {
            _service = ioc;
        }
 
        public IList<Products> GetValidProducts()
        {
            return _service.GetValidProducts();
        }
    }
Lorsque mes méthodes de base figurant dans la classe mere BaseA font appel à _service, je reçois une exception comme quoi _service est à null.
Ce que j'ai fait pour pallier à ce problème c'est de modifier le constructeur de "SProducts" comme suit :
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
class SProducts : BaseService
    {
        new protected IProducts _service;
 
        public SProducts(IProducts ioc)
        {
            _service = ioc;
            base._service = ioc;
        }
 
        public IList<Products> GetValidProducts()
        {
            return _service.GetValidProducts();
        }
    }
Je suis donc obligé de faire deux assignations au constructeur : une pour la classe fille et une pour la classe de base dont elle hérite.

Est-ce normal ou bien ai-je raté un épisode quelque part ?
Logiquement, le fait d'assigner une valeur à l'attribut de la classe fille devrait automatiquement "assigner" la même chose à la classe mère vu qu'on travaille sur le même attribut non ?

Merci d'avance pour vos réponses