Exécuter un constructeur dérivé avant le constructeur de base en C #

Mon problème, c'est que je voudrais faire passer un objet d'une classe dérivée, mais cela doit être fait avant le constructeur de classe de base, depuis la classe de base immédiatement appel de la classe dérivée de Start() méthode qui utilise l'objet.

Voici un extrait de la classe de base, (renommé de BarcodeScanner pour des raisons de commodité).

public abstract class MyBase
{    
    public MyBase()
    {
        if (Initialize())
            this.Start();
    }

    public abstract bool Initialize();
    public abstract void Start();
}

Voici la classe dérivée que je suis en train de créer.

class MyDerived : MyBase
{
    private string sampleObject;

    public MyDerived (string initObject)
    {
        sampleObject = initObject;
    }

    public override bool Initialize() 
    { 
        return GetDevice();
    }
    public override void Start() 
    { 
        Console.WriteLine("Processing " + sampleObject.ToString()); 
    }
}

Je doute que vous pouvez faire C# exécuter un dérivé constructeur avant le constructeur de base; donc, je suis vraiment à la recherche d'une solution pour passer d'un objet de la classe dérivée avant que l'objet est utilisé.

J'ai contourné en mettant de l'Initialiser/Start si le bloc à l'intérieur de la MyDerived constructeur. Cependant, il existe d'autres classes dérivant de la classe de base; j'ai donc fini par avoir à répéter ce bloc d'Initialiser/code de Départ dans chaque classe dérivée. J'aimerais voir une alternative à la modification de la classe de base.

source d'informationauteur James