我的项目中有十几种方法(C#2.0),如下所示:
internal bool ValidateHotelStayEntity(DataRow row)
{
return (new HotelStayEntity(row)).Validate();
}
Run Code Online (Sandbox Code Playgroud)
......但是对于不同的"实体"类.(好吧,不是那么琐碎,我在这里简化了代码.)
它似乎是泛型的一个很好的候选者,我想出了这个:
internal bool ValidateEntity<T>(DataRow row) where T : EntityBase
{
return (new T(row)).Validate();
}
Run Code Online (Sandbox Code Playgroud)
当然我得到"无法创建类型参数'T'的实例,因为它没有new()约束"错误.
问题是这些"实体"类没有公共无参数构造函数,也没有在之后添加"行"数据的方法.由于EntityBase是公司框架的一部分,我无法控制它(即我无法改变它).
有没有办法解决?