C# 反射 如何获取一个程序集的所有非托管DLL
如下,怎样获取一个程序集DllImport特性导入的所有的非托管DLL?
[DllImport("user32.dll")]
public static extern bool MessageBeep(BeepType beepType);
[解决办法]
不知道是什么样的type
[解决办法]
必然不行.
[解决办法]
楼主,这样跟你说呗,反射是基于net的组件化编程,而非托管dll是基于不同平台开发普通dll,不具备组件性质,自然不能用反射来获取。
类似的方式倒是可以考虑:
LoadLibrary() + GetProcAddress()
[解决办法]
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); } } }