反射的问题,总是返回Null

yulinlover 2010-06-20 12:09:34


问题如上图,我已经用“完全限定名”来反射创建了,为什么还是总返回null了,打开错误提示后,提示不能加载程序集,但是我的bin目录里,确实是有这个程序集的啊,在我的整个solution调试的时候,这个程序集也是添加进来的。
不要说Assembly.Load,我就是想知道为什么Type.GetType不行?
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongjing_js 2010-06-20
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分
wuyq11 2010-06-20
  • 打赏
  • 举报
回复
确认引用了程序集
Type.GetType(string)必须是一个Type的全表示名
System.Type.GetType()默认就找自己的类型,继承的也是
yulinlover 2010-06-20
  • 打赏
  • 举报
回复

public T CreateService<T>(string sClassName)
{
Type type = Type.GetType(sClassName);
if (null == type)
{
if (!m_dctAssemblyLoaded.ContainsKey(sClassName))
{
Assembly assembly = Assembly.Load(sClassName);
m_dctAssemblyLoaded[sClassName] = assembly;
}
}
type = Type.GetType(sClassName);
object obj = Activator.CreateInstance(type);
T service = PolicyInjection.Wrap<T>(obj);
return service;
}


还是报错(Assembly.Load出错),错误意思与上面的图差不多,还是提示加载不了。

感谢2位的回复,但是还是出错,我把dll换了目录了一样问题。晕了!!@
我的环境是vs2010+windows server 2008的,不知道为什么?
beckfun 2010-06-20
  • 打赏
  • 举报
回复
引用了没有?
healer_kx 2010-06-20
  • 打赏
  • 举报
回复
可能是这个Assembly没有Load进来了,这是最大的可能。你把它放到别的目录再试一试吧。
yulinlover 2010-06-20
  • 打赏
  • 举报
回复
恭喜楼上,获得了今天的可用分!
问题解决了:是我的主程序与程序集的位置错了一级目录,也就是不在同一目录下,看来还是要注意基本功的修炼啊~感谢各位~

110,535

社区成员

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

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

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