♂C#编程方式获取dll文件中都有什么类和方法♀ 如题,时要使用反射么?谁有具体的代码?谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果引用操作系统的dll,可以用[DllImport("dll")] 如果引用自己写的 只能用反射了,可以参考petshop的(PetShop.IDAL.IAccount) Assembly.Load(path).CreateInstance(className); 谁有更详细的代码么,获取dll文件中有哪些命名空间,哪些类,哪些方法? using System.Reflection;public void GetPlugs(string filepath) { try { string[] fileNames = System.IO.Directory.GetFiles(filepath, "*.dll"); Assembly tmp = null; foreach (string fileName in fileNames) { try { tmp = Assembly.LoadFile(fileName); } catch { continue; } Type[] types = tmp.GetTypes(); foreach (Type t in types) { PlugInAttribute pluginAttr = null; if (IsValidPlugin(t, out pluginAttr)) { mPlugs.Add(t.FullName, tmp); } } } } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.Message); } } 用反射,它下面有就个属性,可以满足要求,看下.net下的插件技术有很大的帮助. 现在运行到"Type[] types = tmp.GetTypes();"会抛出以下异常,无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。不知道为什么,可在自己写的DLL测试是没问题的,可我要最终应用的是一个继承至接口的类,就会出错! 好了,解决了,最后报错是因为一个或多个引用的DLL文件找不到. DataGridview刷新滞后是怎么回事 正则表达式高手进!截取属性值 窗体传直.急救 客户端输入的字符串处理问题 请问自己做一个控件,当自定义的属性改变时触发一自定义的事件,这个自定义的事件该如何定义? 页面更新的问题 wpf调用wcf服务的一些问题 C#如何处理由于死锁被自动Kill掉的事务? 我在上传图片的时候,图片可以上传了,但是怎么样来删除它!! 结束线程?????? 请教到设定的时间就自动执行方法,应该如何实现? INSERT INTO问题
[DllImport("dll")]
如果引用自己写的 只能用反射了,可以参考petshop的
(PetShop.IDAL.IAccount) Assembly.Load(path).CreateInstance(className);
{
try
{
string[] fileNames = System.IO.Directory.GetFiles(filepath, "*.dll"); Assembly tmp = null;
foreach (string fileName in fileNames)
{
try
{
tmp = Assembly.LoadFile(fileName);
}
catch
{
continue;
} Type[] types = tmp.GetTypes();
foreach (Type t in types)
{
PlugInAttribute pluginAttr = null;
if (IsValidPlugin(t, out pluginAttr))
{
mPlugs.Add(t.FullName, tmp);
}
}
}
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
}
}
无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。
不知道为什么,可在自己写的DLL测试是没问题的,可我要最终应用的是一个继承至接口的类,
就会出错!