我想将类的属性作为字符串列表。
例如:有一个名为Colors
的类。颜色有几个属性Colors.RED
,Colors.Blue
等
我想要的是将RED,BLUE等作为列表有没有办法做到这一点?
更新
这个问题不仅仅是关于Colors类,它只是一个例子
答案 0 :(得分:1)
KnownColor
枚举中定义的所有颜色。您可以轻松获取其值
string[] colors = Enum.GetNames(typeof(KnownColor));
更新:使用反射获取公共属性名称
var flags = BindingFlags.Public | BindingFlags.Static;
var names = typeof(Color).GetProperties(flags).Select(p => p.Name);
UPDATE2事实证明,您希望从iTextSharp BaseFont类获取默认字体名称常量(请在下次指定您的意图时更详细)。这些字体存储在名为 BuiltinFonts14 的受保护静态字段中。您可以通过反射获取字体字典:
var flags = BindingFlags.NonPublic | BindingFlags.Static;
var buildinFonts = (Dictionary<string, PdfName>)typeof(BaseFont)
.GetField("BuiltinFonts14", flags).GetValue(null);
字体名称只是这本字典的关键字:
var fontNames = buildinFonts.Select(kvp => kvp.Key).ToArray();
答案 1 :(得分:1)
我认为
typeof(Colors).GetProperties()
可以做到这一点。
opp已经回答:p