【发布时间】:2020-05-18 08:08:18
【问题描述】:
要创建通用基类,我希望将字段的类型存储在变量中。像这样的东西(这只是行不通):
public class MyClass
{
public MyClass()
{
myType = typeof(string);
}
public Type myType { get; set; }
public myType MyProperty { get; set; }
}
我从一个数据库中处理大量模型和模型的 ObservableCollections,其中包含通过 Entity Framework Core 获得的 70 多个表,我不想复制/粘贴(DRY!)每个表的业务逻辑只是因为变化的类型。
我想出的还有其他方法吗?
【问题讨论】:
-
class MyClass<T> { ... public T MyProperty { get; set; } }。又名generics -
您将无法声明
public myType MyProperty,这不仅仅是因为特定的语法不正确,也无法像这样指定类型运行时。您要么必须切换到通用类,如 @Cid 所示,要么使用object或dynamic作为实际属性类型,这并不理想。
标签: c# .net-core entity-framework-core c#-8.0