我将不得不生成大量的外部代码,因此我可以使用另一种编程语言与.NET框架进行交互,以实现我正在开发的开源项目。我想知道是否有任何方法可以将所有MSDN类引用作为XML或其他东西?我正在考虑解析实际的HTML,但它似乎不会很直接,所以我想知道是否有更好的方法来做它。
我能从中获得的最详细信息越多越好。因此,例如,如果它适用于Compact Framework,或者版本差异,那将是很好的。
非常感谢!
答案 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通信的外部函数。