EDIT:問題を明らかにしたより完全な例を追加しました。F#属性、typeof、および "これは定数式ではありません"
.NETの属性によっては、タイプがType
のものが必要です。 F#でこれらのパラメータをどのように宣言しますか?例えば
、C#で、私たちはこれを行うことができます:
[XmlInclude(typeof(Car))]
[XmlInclude(typeof(Truck))]
class Vehicle { }
class Car : Vehicle { }
class Truck : Vehicle { }
しかし、F#で次のことを...
[<XmlInclude(typeof<Car>)>]
[<XmlInclude(typeof<Truck>)>]
type Vehicle() = class end
type Car() = inherit Vehicle()
type Truck() = inherit Car()
...コンパイラエラーで結果:これではありません定数式または有効なカスタム属性値。
*これは*動作するはずですか?あなたのためのテスト例をまとめようとしたときに、** typeof <...> **を属性に使用していないことがわかりました。問題は** Car **と** Truck **クラスが基本クラスの後に*定義されていることでした。 – Wally
@Wallyその場合、再帰型(お互いに見える)を定義するには 'type ...と...'が必要です。 –