关于反射的问题

rbhmynjr 2009-04-21 02:08:42
现在我要反射一个dll1
但是这个dll1是引用了一个第三方的dll2
反射dll1时,系统报错,fileNotFound,也就是dll2找不到
请问一下有什么方法可以解决这个问题吗,谢谢
...全文
94 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
t240034137 2009-04-21
  • 打赏
  • 举报
回复
虽然不知道但是还需要顶!期待高人!
rbhmynjr 2009-04-21
  • 打赏
  • 举报
回复
有人能告诉我为什么dll1反射的时候需要加载dll2到全局程序集缓存
平常用dll1的时候却却不需要?
一样给分,谢谢
rbhmynjr 2009-04-21
  • 打赏
  • 举报
回复
问题似乎已解决,需要把dll2拖入C:\WINDOWS\ASSEMBLY中
前提是ddl2是强签名程序集
别的方法基本都无效
keke453042926 2009-04-21
  • 打赏
  • 举报
回复
在解决方案中将两个引用都加入
要不就是把两个文件都放在程序启动位置
rbhmynjr 2009-04-21
  • 打赏
  • 举报
回复
我把dll1和dll2也放在一起了,无效
把dll2甚至放到了.net的系统目录,还是不行
rbhmynjr 2009-04-21
  • 打赏
  • 举报
回复
之前放已经放到了系统目录,还是出错
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;


using System.Reflection;
namespace wew
{
static class Program
{
/// <summary>
/// 應用程式的主要進入點。
/// </summary>
[STAThread]
static void Main()
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form3());
Assembly q = Assembly.LoadFrom("g:\\spcChart.dll");
foreach (Module m in q.GetModules())
{
Console.WriteLine(m);
foreach (System.Type t in m.GetTypes())
{
if (true)
{
Console.WriteLine(t);
BindingFlags gf = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static;
foreach (MemberInfo fo in t.GetMethods(gf))
{
if (fo.Name != ".ctor" )
{
Console.WriteLine(fo);
}
}
}
}
}
}
}
}
delphi_new 2009-04-21
  • 打赏
  • 举报
回复
把dll1所引用的DLL都放在一起,否则反射出错
xiaojing7 2009-04-21
  • 打赏
  • 举报
回复
应该需要2个DLL得
soaringbird 2009-04-21
  • 打赏
  • 举报
回复
把dll2放在程序的工作目录或者系统目录
zgke 2009-04-21
  • 打赏
  • 举报
回复
只能找到DLL2 要不DLL1是装载不了的.
ericzhangbo1982111 2009-04-21
  • 打赏
  • 举报
回复
这个dll2和dll1放在一起看看

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧