Я пытаюсь реализовать статический абстрактный интерфейс C#. Я прочитал документацию и блоги и не понимаю, что делаю неправильно.
public interface IModel
{
abstract static PropertyInfo KeyProperty { get; }
abstract static string TableName { get; }
}
public abstract record Model: IModel
{
public static PropertyInfo KeyProperty { get; }
public static string TableName { get; }
...
}
public Repository where TModel : Model
{
public void SomeMethod()
{
// This throws a compiler error: "CS0704 Cannot do non-virtual member lookup in 'TModel' because it is a type parameter"
var col = TModel.KeyProperty.Name;
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... tract-stat