创建动态对象

时间:2011-03-24 14:20:27

标签: c# .net asp.net asp.net-mvc-3

我正在创建一个数据来自数据库的系统。此数据表示必须动态创建的特定对象。

现在让对象工作到我使用的构建框架。我需要像这样在我的班级顶部设置对象。

public class PageGeneratorWidget
{
    public ColorPickerWidget com1 { get; protected set; } 

    public PageGeneratorWidget(string dataId){
     //SOME CODE LIKE
     //com1.Type = "flat";
    }
}

动态设置对象的属性不是问题。我遇到的问题是我不知道如何动态创建

public ColorPickerWidget com1 {get; protected set;}

有人知道这方面的解决方案吗?

由于

2 个答案:

答案 0 :(得分:0)

您的解决方案隐藏在Generics中。

您的代码应该如下所示。

public class PageGeneratorWidget<T>
{
    public T com1 { get; protected set; } 

    public PageGeneratorWidget(string dataId){
     //SOME CODE LIKE
     //com1.Type = "flat";
    }
}

通过声明类的对象

来使用它
PageGeneratorWidget<ColorPickerWidget> my object =
     new PageGeneratorWidget<ColorPickerWidget>();

继续阅读An Introduction to C# Generics

答案 1 :(得分:0)

您可以在PageGeneratorWidget的构造函数中创建对象:

public class PageGeneratorWidget
{
    public ColorPickerWidget com1 { get; protected set; } 

    public PageGeneratorWidget(string dataId){
     //SOME CODE LIKE
     //com1.Type = "flat";
    com1 = new ColorPickerWidget(); // Use color Picker Widget constructor
    }
}

您也可以让PageGeneratorWidget构造函数获取ColorPickerWidget类型的参数,并将com1设置为该值。