在字符串中使用类实例的名称来访问类对象

时间:2014-01-12 01:27:46

标签: c#

我正在编写一个C#应用程序,它从文本文件中读取数据,该文件被分为固定内容的记录类型。旧ISAM格式的文​​本版本的排序。然后,我想将数据写入Access数据库,该数据库具有与输入文件不同的表结构。

我正在将输入文件的每个记录类型读入一个单独的类中。我在类定义中有每个输入记录的布局,然后将其输入到将数据加载到类中的通用解析器。这一切都很好。

我遇到的问题是干净地创建SQL插入语句以写入Access数据库。 Access数据库具有与输入File不同的表结构。我想创建一个Access表中的列到包含输入数据的类的映射。即G。 output-table-A.column_C从input-record-1.column_1获取其数据。然后我可以编写一个泛型函数来收集插入SQL语句的数据以加载output-table-A。

问题是输入数据对象的引用是一个字符串。如何从字符串到实际的对象实例以检索数据?

这种灵活性非常有用,因为一些用户希望在文件中指定从输入到输出的映射,该文件将在程序运行时读取。我知道这听起来很奇怪,但我正在处理允许用户更改的数据库模式。不要问我为什么有人会写一个允许这样的系统,但他们确实如此。

1 个答案:

答案 0 :(得分:1)

您想要从具有类名称的字符串创建对象吗?

class MyClass
{
    public string Name;
    public int Age;
}

Type MyType = Type.GetType("MyClass");

var MyObject = Activator.CreateInstance(MyType);    

我不知道对你有多大帮助。听起来你仍然需要做一些if / elsing来处理这个课程。