Автоматизация ссылок на классы .NET Framework - PullRequest
1 голос
/ 15 октября 2010

Мне нужно будет сгенерировать много внешних объектов, чтобы я мог взаимодействовать с .NET Framework из другого языка программирования для проекта с открытым исходным кодом, над которым я работаю. Мне было интересно, есть ли способ получить все ссылки на классы MSDN в виде XML или что-то? Я думаю о синтаксическом анализе фактического HTML, но, похоже, он не будет очень простым, поэтому мне было интересно, есть ли лучший способ сделать это.

Чем больше деталей я могу получить от них, тем лучше. Так, например, если он работает на Compact Framework или различий в версиях, было бы здорово иметь возможность получить.

Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 15 октября 2010

Вы можете использовать отражение в библиотеках DLL, чтобы получить список классов, параметров методов и т. Д. Я предполагаю, что это то, что вам в конечном итоге нужно.

Посмотрите здесь для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/ms173183(VS.80).aspx

Вы можете легко написать некоторый код .Net для распечатки данных о классах или даже использовать его для автоматической генерации кода на другом языке.

Я понятия не имею, что вы планируете делать с этим, хотя. Конечно, если вы хотите использовать .Net Framework, имеет смысл сделать это в .Net? Если вы хотите с открытым исходным кодом, вы смотрели Mono (http://www.mono -project.com / Main_Page)?

2 голосов
/ 15 октября 2010

Пример кода (написанного непосредственно в этом ответе, вы должны изменить его):

//Will load your assembly and all .Net core assemblies.
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
    Console.WriteLine("Going through " + assembly.Location);
    foreach(var type in assembly.GetTypes())
    {
        Console.WriteLine("Type " + type.FullName + " has the following methods:");
        for (var method in type.GetMethods())
        {
           // you can create another loop to go through all method arguments.
           Console.WriteLine(method.Name);
        }
    }
}

Чтобы просмотреть все сборки, просто используйте Directory.GetFiles () во всех подкаталогахв C: \ Windows \ Microsoft.Net \ Assembly \ GAC_MSIL и Assembly. Загрузите их.

1 голос
/ 15 октября 2010

Вы уже видели Pinvoke.net , сайт, полный интерфейсов для внешних библиотек Windows (включая библиотеки Windows CE для использования с Compact Framework).

Для взаимодействия не с Windows DLL, Pinvoke Interop Assistant поможет вам выяснить внешние факторы для общения с неуправляемыми DLL.

...