自动化.NET Framework类引用

时间:2010-10-15 12:23:45

标签: c# .net reference

我将不得不生成大量的外部代码,因此我可以使用另一种编程语言与.NET框架进行交互,以实现我正在开发的开源项目。我想知道是否有任何方法可以将所有MSDN类引用作为XML或其他东西?我正在考虑解析实际的HTML,但它似乎不会很直接,所以我想知道是否有更好的方法来做它。

我能从中获得的最详细信息越多越好。因此,例如,如果它适用于Compact Framework,或者版本差异,那将是很好的。

非常感谢!

3 个答案:

答案 0 :(得分:2)

您可以在DLL上使用反射来获取类列表,方法参数等。我认为这是您最终需要的。

请点击此处了解详情:http://msdn.microsoft.com/en-us/library/ms173183(VS.80).aspx

您可以轻松编写一些.Net代码来打印类中的数据,甚至可以使用它来自动生成另一种语言的代码。

我不知道你打算用这个做什么。当然,如果你想使用.Net Framework,那么在.Net中这样做是否有意义?如果你想要开源,你看过Mono(http://www.mono-project.com/Main_Page)吗?

答案 1 :(得分:2)

示例代码(直接在此答案中编写,您必须对其进行修改):

//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);
        }
    }
}

要浏览所有程序集,只需在C:\ Windows \ Microsoft.Net \ Assembly \ GAC_MSIL和Assembly.Load中的所有子目录上使用 Directory.GetFiles()

答案 2 :(得分:1)

您是否查看了Pinvoke.net,这是一个充满外部Windows DLL接口的站点(包括用于Compact Framework的Windows CE DLL)。

对于非Windows DLL互操作,Pinvoke Interop Assistant可帮助您找出与非托管DLL通信的外部函数。