我使用LinqPad连接到sql server。有一个标准的数据库Northwind与表Product。我需要动态获取表属性信息(从客户端控制台输入读取表名)。不幸的是,LinqPad隐藏了表真实的类型。无论我如何尝试,它总是对我无效。
请注意,这个问题与其他人不一样。我需要将表属性与用户输入表名称相关联,如“Products”。挑战部分是我不需要获取字符串“LINQPad.User.Products”属性,但我确实需要获取表LINQPad.User.Products属性。问题Get properties and values from unknown object的答案 无法解决我的问题。实际上我的问题与答案相同,只是代码格式不同。
var propertyInfo = (Type.GetType(fullTableName)).GetProperties();
var tableName = Console.ReadLine();
string fullTableName = "LINQPad.User." + tableName;
var propertyInfo = (Type.GetType(fullTableName)).GetProperties();
答案 0 :(得分:2)
要获取属性,您可以使用以下内容......
void Main()
{
string tableName = Console.ReadLine();
Type.GetType("UserQuery").GetProperty(tableName)
.PropertyType
.GenericTypeArguments
.First()
.GetProperties()
.Dump("The properties of the " + tableName + " table");
}
答案 1 :(得分:1)
你应该能够这样做:
this.GetType().GetProperty("Products").PropertyType.GetProperties().Dump();
要进行测试,您可以将其与以下内容进行比较:
Products.GetType().GetProperties().Dump();
你得到的结果相同。