アンマネージライブラリをラップするC#クラスをF#に変換しています。次のデストラクタを書き直すという一見単純な問題に遭遇しました。
class Wrapper {
// P/Invoke ellided
private SomeType x;
public Wrapper() {
x = new SomeType();
Begin();
}
public ~Wrapper() {
End();
}
この時点で私が持っている簡略化されたF#コードは次のとおりです。
type Wrapper() =
[<Literal>]
static let wrappedDll = "Library.dll"
[<DllImport(wrappedDll , EntryPoint = "Begin")>]
static extern void Begin()
[<DllImport(wrappedDll , EntryPoint = "End")>]
static extern void End()
let x = new SomeType()
do
Begin()
このF#コードを変更して同じ動作をさせるにはどうすればよいですか?F#デストラクタを検索しても、私が持っている本やWeb上で結果が見つかりませんでした。
ありがとうございました。