Pass aktuellen Objekttyp in Basis-Konstruktor aufrufen

Wie kann ich schnappe mir den Type von der geerbten Klasse, und übergeben Sie es in die Basis-Konstruktor von der Klasse geerbt? Siehe das code-Beispiel unten:

//VeryBaseClass is in an external assembly
public abstract class VeryBaseClass
{
    public VeryBaseClass(string className, MyObject myObject)
    {

    }
}

//BaseClass and InheritedClass are in my assembly
public abstract class BaseClass : VeryBaseClass
{
    public BaseClass(MyObject myObject) :
        base(this.GetType().Name, myObject) //can't reference "this" (Type expected)
    {

    }
}

public class InheritedClass : BaseClass
{
    public InheritedClass(MyObject myObject)
    {

    }
}

Die Linie base(typeof(this).Name, myObject) funktioniert nicht, da kann ich nicht Referenz this doch, da das Objekt noch nicht fertig konstruieren und daher nicht vorhanden ist.

Ist es möglich zu greifen, die Type von der aktuell Bau-Objekt?

EDIT:

Korrigiert die Stichprobe orsogufo vorgeschlagen, aber funktioniert immer noch nicht, wie this ist nicht definiert.

EDIT 2:

Nur um zu klären, möchte ich am Ende mit "InheritedClass" weitergegeben werden, in der VeryBaseClass(string className, MyObject myObject) Konstruktor.

  • Warum wollen Sie dies tun? Ein Konstruktor sollte nicht egal, ob es aufgerufen wird, ist die Instanzierung der eigenen Klasse oder einer abgeleiteten Klasse.
  • Ich denke, Sie sind fehlt den Punkt. Die externe assembly, definiert die Basis-Klasse des Frameworks, die ich verwenden, benötigt die string-Darstellung der Klasse selbst übergeben werden dem Konstruktor übergeben. Bisher habe ich es immer aufgeschoben, als man erwarten würde (als string), aber ich würde es vorziehen, wenn es funktionieren würde, es zur Laufzeit für geistige Gesundheit Willen.
  • Oh ich sehe, es ist nicht deine Klasse. Ich denke immer noch, es ist eine schlechte Sache, die es interessiert 🙂
InformationsquelleAutor Codesleuth | 2010-02-18
Schreibe einen Kommentar