【发布时间】:2015-09-28 05:39:11
【问题描述】:
我在 SQLite-Net 中使用 CreateTable 方法,它接受一个类型参数来指定正在创建的表类型。例如:
database.CreateTable<Client>();
其中客户端定义为:
[Table("Client")]
public class Client
{
[PrimaryKey]
public int ClientID { get; set; }
public string Name { get; set; }
public string Type { get; set; }
}
将使用客户端类中定义的架构创建一个表,因此具有 ClientID、Name 和 Type 列。
我想使用一个字符串数组,保存我要创建的表的名称,在数组中命名的所有类上运行 CreateTable。但是我不确定如何在泛型方法中使用字符串作为类型参数。
看起来像这样:
string[] tables = new string[]{"Class1","Class2"};
for(int i = 0; i < tables.Length; i++){
database.CreateTable<tables[i]>();
}
这会做同样的事情:
database.CreateTable<Class1>():
database.CreateTable<Class2>();
我已经尝试过这样做:
Type tabletype = Type.GetType("Client");
database.CreateTable<tabletype>();
但我收到一条错误消息,提示“找不到类型或命名空间名称‘tabletype’”。所有的表都定义为同一个命名空间中的类。
谢谢。
【问题讨论】: