读书人

C# 反射 怎么获取一个程序集的所有非托

发布时间: 2012-04-26 14:01:31 作者: rapoo

C# 反射 如何获取一个程序集的所有非托管DLL
如下,怎样获取一个程序集DllImport特性导入的所有的非托管DLL?

[DllImport("user32.dll")]
public static extern bool MessageBeep(BeepType beepType);



[解决办法]
不知道是什么样的type
[解决办法]
必然不行.

[解决办法]
楼主,这样跟你说呗,反射是基于net的组件化编程,而非托管dll是基于不同平台开发普通dll,不具备组件性质,自然不能用反射来获取。

类似的方式倒是可以考虑:

LoadLibrary() + GetProcAddress()
[解决办法]

C# code
            Assembly asm = Assembly.LoadFile("程序集路径");            foreach (Type t in asm.GetTypes())            {                foreach (MethodInfo mi in t.GetMethods(BindingFlags.Static | BindingFlags.Public))                {                    foreach (object obj in mi.GetCustomAttributes(false))                    {                        if (obj is DllImportAttribute)                            Console.WriteLine(((DllImportAttribute)obj).Value);                    }                }            } 

读书人网 >C#

热点推荐