通过属性的名称获取静态属性

时间:2010-07-20 13:34:09

标签: c# reflection

ImageFormat中,有一些属性,例如PngTiff等。

现在,给定一个字符串是否可以检索相应的静态属性?

这是代码

[Test]
public void GetPng()
{
    Assert.AreEqual(ImageFormat.Png, GetImageFormat("Png"));  //how to construct a GetImageFormat function?
}

3 个答案:

答案 0 :(得分:4)

public static void Main()
{
    typeof(ImageFormat).GetProperty("GetPng", BindingFlags.Public |
                                              BindingFlags.Static);
}

答案 1 :(得分:2)

PropertyInfo pi =  typeof(ImageFormat)
    .GetProperty("Png", BindingFlags.Static | BindingFlags.Public);

答案 2 :(得分:2)

static ImageFormat GetImageFormat(string name)
{
    return (ImageFormat)typeof(ImageFormat)
        .GetProperty(name)
        .GetValue(null, null);
}