我的公司有一个基础数据库模型类,它是我们产品的特定实例的子类。该类表示数据库中的主键。基类有一个字段,我们将其称为 AlwaysPresent,该字段对产品的所有实例都是通用的,并且不用于查询。
abstract class BaseClass
{
private string AlwaysPresent
}
但要求子类至少添加一个字段,因为稍后我们将使用反射将这些其他字段视为查询的数据库列名。如果没有其他字段,我们无法查询。
所以,我的问题是:是否可以使用 C# 的反射功能来强制非抽象子类在不指定名称的情况下定义新字段?
我是一名 Python 程序员,我确切地知道如何使用元类在 Python 中解决这类问题。据我所知,C# 没有元类。而且我不能在基类构造函数中引发异常,因为(出于各种原因)我们不为这些类使用构造函数(只是初始化器),即使我们这样做了,基类构造函数也可能被覆盖。