Tengo el siguiente código en extensión de tipo (en F #) que invoca un método protegido de una clase hereda (en C#) pero obtengo la excepción (ver a continuación). ¿Hay una solución para esto?Cómo acceder al miembro protegido
let getPagereference id =
this.ConstructPageReference(id)
El miembro o 'ConstructPageReference' objeto constructor no es accesible. Solo se puede acceder a los miembros privados desde el tipo de declaración. Solo se puede acceder a los miembros protegidos desde un tipo extendido y no se puede acceder a ellos desde expresiones lambda internas.
Actualización:
He tratado siguiente, pero conseguir el mismo resultado
let getPagereference id =
base.ConstructPageReference(id)
Actualización 2 (solución):
aquí está el código, como era,
type MyNewType() =
inherit SomeAbstractType()
let getPagereference id =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = getPagereference id
esta es la forma en que debería haber sido:
type MyNewType() =
inherit SomeAbstractType()
member this.ConstructPageReference(id) =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = this.ConstructPageReference(id)
F # (y AFAIK todos los lenguajes CLI) respeta los modificadores de acceso: http://msdn.microsoft.com/en-us/library/ms173121.aspx –
O tal vez no entendí la pregunta ... –
decir bien que para f # interactivo – Enes