Ho il seguente codice nel tipo di estensione (in F #) che richiama un metodo protetto di una classe ereditata da (in C#) ma ottengo l'eccezione (vedi sotto). C'è una soluzione per questo?Come accedere all'elemento protetto
let getPagereference id =
this.ConstructPageReference(id)
Il membro oi 'ConstructPageReference' dell'oggetto costruttore non è accessibile. È possibile accedere ai membri privati solo all'interno del tipo di dichiarazione. È possibile accedere ai membri protetti solo da un tipo di estensione e non è possibile accedere alle espressioni lambda interne.
Aggiornamento:
Ho provato a seguito ma ottenere lo stesso risultato
let getPagereference id =
base.ConstructPageReference(id)
Aggiornamento 2 (soluzione):
ecco il codice come lo era:
type MyNewType() =
inherit SomeAbstractType()
let getPagereference id =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = getPagereference id
questo è come dovrebbe essere:
type MyNewType() =
inherit SomeAbstractType()
member this.ConstructPageReference(id) =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = this.ConstructPageReference(id)
F # (e AFAIK tutte le lingue CLI) onora modificatori di accesso: http://msdn.microsoft.com/en-us/library/ms173121.aspx –
O forse non ho capito la domanda ... –
ben dire per f # interattivo – Enes