以编程方式访问.NET API

时间:2012-01-28 08:39:25

标签: c# .net reflection system.reflection

有没有办法检索有关.NET API的元数据?

例如,假设我想获得为System.Windows.Documents.List定义的所有properties的列表。以XML,JSON等结构化格式获取此信息会很不错。每个条目应如下所示:

<property name="MarkerStyle" type="TextMarkerStyle" get="true" set="true"/>

我想避免屏幕刮掉MSDN库。 : - )

3 个答案:

答案 0 :(得分:5)

您可以使用Reflection在运行时检索有关现有类的元数据。 GetProperties方法是你可以开始的。

答案 1 :(得分:1)

您可以使用Reflection并编写一些代码来格式化为XML,JSON等。

或者您可以使用Reflector

之类的工具

答案 2 :(得分:1)

感谢Darin和Robert指向System.Reflection命名空间的指针。

这是一个简短的程序,打印出List的所有公共属性:

using System;
using System.Reflection;
using System.Windows.Documents;

namespace ReflectionWpfListPropertiesTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var members = typeof(List).GetMembers();

            Array.ForEach(members, info =>
                {
                    if (info.MemberType == MemberTypes.Property)
                        Console.WriteLine(info);
                });
        }
    }
}