Учитывая следующий тип CRTP в C #:
public abstract class DataProviderBase
where TProvider : DataProviderBase { }
Как мне получить определение универсального типа в F #?
let typeDef = typedefof>
выдает ошибку:
Несоответствие ограничений типа при применении типа по умолчанию ' DataProviderBase ' для переменной вывода типа. Результирующий тип будет бесконечным при объединении '' a 'и' DataProviderBase '. Рассмотрите возможность добавления дополнительных ограничений типа
В C # это будет:
var typeDef = typeof(DataProviderBase<>);
Я нашел обходной путь:
[]
type DummyProvider() =
inherit DataProviderBase()
let typeDef = typeof.BaseType.GetGenericTypeDefinition()
Есть ли другой способ сделать это без дополнительного типа?