如何创建一个具有动态属性的类(扩展对象?

本文关键字:属性 动态 扩展 对象 一个 何创建 创建 | 更新日期: 2023-09-27 18:34:05

我有一个名为 Exam 的部分类。类结构如下所示:

public partial class Exam 
{
    public string ID { set; get; } //default
    public string Name { set; get; } //default
}

执行存储过程后,检索到的数据应包含一个或多个测试方法,如以下结构所示。我想将检索到的数据放入动态对象考试。如何为对象考试创建动态对象以及如何将数据绑定到此动态对象?

ID, Name, Test1, Test2, Test3....
1, Peter, Y, N, Y
1, John, N, Y, Y
public virtual ObjectResult<Exam> sp_exam()
{
    return  ((IObjectContextAdapter)this).
              ObjectContext.ExecuteFunction<Exam>("ConnectionEntities.sp__exam");
}

如何创建一个具有动态属性的类(扩展对象?

AFAIK ExpandoObject 只是一个简单的字典的语法糖。所以你可以写:

public partial class Exam {
    public string ID { set; get; } //default
    public string Name { set; get; } //default
    public readonly Dictionary<string, object> ExtraProperties = new Dictionary<string, object>();
}

但我想你只是有一个糟糕的对象模型。