2017-10-03 1 views
0

Ich habe 2 solcher Klassen.Reflexion. Wert der geerbten übergreifenden Eigenschaft erhalten

public class A 
{ 
    public int Id {get; set;} 
    public abstract string Type { get; } 
} 
public class B 
{ 
    public override string Type => "value"; 
} 

Ich brauche den Wert des Grundstücks Art in der Klasse B. mit NET Kern finden i versuchen, den Wert auf diese Weise zu erhalten:

var value = typeof(B).GetProperty("Type").GetValue(typeof(B)); 

Ich erhalte diese Ausnahme:

Das Objekt stimmt nicht mit dem Zieltyp überein.

sogar Übergabe typeof (A) in GetValue() ich bekomme immer den gleichen Fehler.

Antwort

0

Das Argument GetValue benötigt keine Type Instanz, es muss eine Instanz des Typs des Objekts akzeptieren, für das das Element definiert ist. Also hier müssen Sie eine Instanz eines B Objekts übergeben, und kein Type Objekt, das den B Typ darstellt.

Verwandte Themen