継承元のクラス(C#)の保護されたメソッドを呼び出す拡張型(F#)の次のコードがありますが、例外が発生します(以下を参照)。これに対する回避策はありますか?
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)