У меня есть следующий код в расширяющем типе (в F #), который вызывает защищенный метод класса, от которого он наследуется (в C #)
но я получаю исключение (см. ниже). Есть ли обходной путь для этого?
let getPagereference id =
this.ConstructPageReference(id)
Элемент или конструктор объекта ConstructPageReference недоступен. Доступ к закрытым членам возможен только из объявленного типа. Доступ к защищенным элементам возможен только из расширяющего типа, а доступ к внутренним лямбда-выражениям невозможен.
Обновление:
Я пытался следовать, но получил тот же результат
let getPagereference id =
base.ConstructPageReference(id)
Обновление 2 (решение):
вот код, как это было:
type MyNewType() =
inherit SomeAbstractType()
let getPagereference id =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = getPagereference id
Вот как это должно было быть:
type MyNewType() =
inherit SomeAbstractType()
member this.ConstructPageReference(id) =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = this.ConstructPageReference(id)