Я немного запутался в том, что вы хотите ...
Если вы хотите получить само имя класса, это
usc.GetType().name
Но в случае, если вам нужен списоквсе свойства в классе UserControl, вы должны запросить весь список.В настоящее время вы запрашиваете только одно конкретное свойство.Поэтому попробуйте:
var classes = usc.GetType().GetProperties();
И если вам просто нужны имена классов, используйте атрибут PropertyType соответствующего свойства.
Другой источник ошибки может быть: ваш jquery производит getter и setter для атрибутов?Если нет, то они не видны «Свойством» , а как « Поле » - вместо этого используется GetFields ().
Вот пример кода для получения свойств:
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
namespace Reflection_Test
{
class UserControl
{
public int test { get; set; } // if no getter/setter is set, this is considered as field, not property
public bool falsetrue { get; set; } // if no getter/setter is set, this is considered as field, not property
public UserControl control { get; set; } // if no getter/setter is set, this is considered as field, not property
public UserControl()
{
test = 23;
falsetrue = true;
control = this;
}
public List<string> GetAttributes()
{
PropertyInfo[] temp = this.GetType().GetProperties();
//this.GetType().GetProperties();
List<string> result = new List<string>();
foreach(PropertyInfo prop in temp)
{
result.Add(prop.PropertyType.ToString());
}
return result;
}
}
}