So greifen Sie auf ein geschütztes Mitglied zu
Ich habe folgenden Code in Erweiterungstyp (in F #), der eine geschützte Methode einer Klasse aufruft, von der er erbt (in C #), aber ich erhalte die Ausnahme (siehe unten). Gibt es eine Problemumgehung dafür?
let getPagereference id =
this.ConstructPageReference(id)
Auf den Element- oder Objektkonstruktor 'ConstructPageReference' kann nicht zugegriffen werden. Auf private Mitglieder kann nur innerhalb des deklarierenden Typs zugegriffen werden. Auf geschützte Member kann nur von einem erweiterten Typ aus zugegriffen werden, nicht jedoch von inneren Lambda-Ausdrücken.
Aktualisieren:
Ich habe versucht, zu folgen, aber das gleiche Ergebnis zu erzielen
let getPagereference id =
base.ConstructPageReference(id)
Update 2 (Lösung):
Hier ist der Code wie er war:
type MyNewType() =
inherit SomeAbstractType()
let getPagereference id =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = getPagereference id
so hätte es sein sollen:
type MyNewType() =
inherit SomeAbstractType()
member this.ConstructPageReference(id) =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = this.ConstructPageReference(id)