Программный доступ к API .NET - PullRequest
2 голосов
/ 28 января 2012

Есть ли способ получить метаданные об API .NET?

Например, предположим, что я хотел бы получить список всех свойств , определенных для System.Windows.Documents.List.Было бы неплохо получить эту информацию в некотором структурированном формате, таком как XML, JSON и т. Д. Каждая запись должна выглядеть примерно так:

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

Я бы хотел избежать скрининга библиотеки MSDN,: -)

Ответы [ 3 ]

5 голосов
/ 28 января 2012

Вы можете использовать Отражение для извлечения метаданных о существующих классах во время выполнения.Метод GetProperties - это то, с чего можно начать.

1 голос
/ 28 января 2012

Спасибо Дарину и Роберту за указатели на пространство имен 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);
                });
        }
    }
}
1 голос
/ 28 января 2012

Вы можете использовать Reflection и написать некоторый код для форматирования в XML, JSON и т. Д.

Или вы можете использовать такой инструмент, как Reflector

...