2009-06-28 23 views
0

Ich erweitere eine Klasse (DirectoryServices.AccountManagement.Principal) und ich muss einen Wert zu einem Feld in der Basisklasse zuweisen, aber es markiert intern. Kann ich Reflektion verwenden, um den Wert festzulegen? Wie wäre das zu machen?So legen Sie ein internes Basisklassenfeld fest

Ich fand dies:

base.GetType().GetProperty("unpersisted").SetValue(??, false); 

Aber im nicht ganz sicher, wie es Principal-Objekt

Jede Führung ist sehr geschätzt, die Basis zu geben.

Antwort

1

Verwendung diese für ??

+0

habe ich versucht, dies aber sein die im Basisklasse interessiert in – Exist

+0

Sorry, ich nehme das zurück Ihr richtig, ich hatte gerade GetField stattdessen zu verwenden. . Vielen Dank! – Exist

+0

akzeptiert aber downvoted? – JoelFan

0

GetProperty auf der abgeleiteten Klasse und verwenden alle Parameter wie folgt aus:

GetType(Derived).GetProperty("BaseProperty", BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, GetType(PropertyType), New Type() {}, Nothing).SetValue(DerivedInstance, NewValue, Nothing) 
Verwandte Themen