EDIT: Thêm ví dụ hoàn chỉnh hơn, làm rõ vấn đề.Thuộc tính F #, typeof và "Đây không phải là biểu thức liên tục"
Một số thuộc tính .NET yêu cầu tham số loại Type
. Làm thế nào để khai báo các tham số này trong F #?
Ví dụ, trong C# chúng ta có thể làm điều này:
[XmlInclude(typeof(Car))]
[XmlInclude(typeof(Truck))]
class Vehicle { }
class Car : Vehicle { }
class Truck : Vehicle { }
Nhưng, trong F # sau ...
[<XmlInclude(typeof<Car>)>]
[<XmlInclude(typeof<Truck>)>]
type Vehicle() = class end
type Car() = inherit Vehicle()
type Truck() = inherit Car()
... kết quả trong một lỗi biên dịch: Đây không phải là một biểu thức liên tục hoặc giá trị thuộc tính tùy chỉnh hợp lệ.
Cảm ơn bạn đã xác nhận rằng * * này nên hoạt động. Khi tôi cố gắng kết hợp một ví dụ thử nghiệm cho bạn, tôi thấy vấn đề không phải là sử dụng ** typeof <...> ** trong một thuộc tính. Vấn đề là các lớp ** Xe ** và ** Xe tải ** được xác định * sau * lớp cơ sở. – Wally
@Wally Trong trường hợp đó, bạn có thể cần 'loại ... và ...' để xác định các loại đệ quy (nhìn thấy nhau). –