У меня есть следующий код в расширяющемся типе (в F #), который вызывает защищенный метод класса, который он наследует от (в C#) , но я получаю исключение (см. Ниже). Есть ли обходной путь для этого?Как получить доступ к защищенному члену
let getPagereference id =
this.ConstructPageReference(id)
Член или 'ConstructPageReference' конструктор объекта не доступен. Доступ к частным членам возможен только из типа объявления. Защищенные члены могут быть доступны только из расширяемого типа и не могут быть доступны из внутренних лямбда-выражений.
Update:
Я попытался следующие, но получить тот же результат
let getPagereference id =
base.ConstructPageReference(id)
Update 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)
F # (и AFAIK все языки CLI) почитает модификаторы доступа: http://msdn.microsoft.com/en-us/library/ms173121.aspx –
Или, может быть, я не понял вопроса ... –
well say что для f # interactive – Enes