我想从我的班级获得一个Sqlite Table
属性。
我有一种方法可以检查来自here的表格是否存在:
var info = database.Connection.GetTableInfo(typeof(Customer).Name);
if (info.Any())
{
//do stuff with table
}
其中Customer
是:
[Table("Customer")]
public class Customer
{
//class stuff
}
现在我的方法可以正常工作,但是我希望将它链接到Table
属性而不是类名,因为我将来更改表名。
如何从课堂上获取Table
属性?
聚苯乙烯。我正在使用PCL(便携式类库)
答案 0 :(得分:2)
知道了。只需要在Type
上使用GetCustomAttributes方法,并输入我正在寻找的属性类型。所以它变成了:
string tableName = typeof(Customer).Name;
var customAttributes = typeof(Customer).GetCustomAttributes(typeof(SQLite.Net.Attributes.TableAttribute),false);
if (customAttributes.Count() > 0)
{
tableName = (customAttributes.First() as SQLite.Net.Attributes.TableAttribute).Name;
}
答案 1 :(得分:1)
以下是PCL的解决方案:
using System.Reflection;
string tableName = typeof(MyClass).Name;
var customAttributes = typeof(MyClass).GetTypeInfo().GetCustomAttributes<SQLite.Net.Attributes.TableAttribute>();
if(customAttributes.Count() > 0)
{
tableName = customAttributes.First().Name;
}