为什么Assembly.GetType()返回null,求大神指点

问题描述

我有一个程序片断Assemblya=Assembly.LoadFrom("BaiduMusic.dll");Typetype=a.GetType("CMusicSearch.BaiduMusic.MainSearch",false);调试运行,a可以得到{BaiduMusic,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null},不过不知道为什么type一直为nullBaiduMusic.dll中类MainSearch的定义如下namespaceCMusicSearch.BaiduMusic{usingCMusicSearch.ISearch;usingCMusicSearch.MusicCommon;usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Text.RegularExpressions;publicclassMainSearch:IMusicSearch,IEncoding{///<summary>///获得TR块中每个TD块信息(歌曲地址、歌曲名、歌手名)///</summary>privatereadonlystringBAIDU_MUSIC_INFO_PATTERN="<tdclass=tdn>.*?</td><tdclass=d><ahref="(?<LinkUrl>.*?)"\s+target=.*?>(?<MusicName>.*?)\s*</a></td><td>(<a.*?>(?<Singer1>.*?)</a>.*?)?(<a.*?>(?<Singer2>.*?)</a>.*?)?(<a.*?>(?<Singer3>.*?)</a>.*?)?(<a.*?>.*?</a>.*?).*?</td>";///<summary>///获得TR块中每个TD块信息(专辑名)///</summary>privatereadonlystringBAIDU_MUSIC_INFO_PATTERN_2="<tdclass=al>(<a.*?>(?<Album>.*?)</a>)?.*?</td>";///<summary>///获得Baidu网页中所有歌曲信息的TR块的正则表达式///</summary>privatereadonlystringBAIDU_TR_PATTERN=@"<tr>s*<tdclass=tdn>.*?</tr>";///<summary>///创建音乐获取URL///</summary>///<paramname="info">音乐搜索信息</param>///<returns>URL</returns>publicstringCreateMusicUrl(SearchMusicInfoinfo){try{stringformat="http://mp3.baidu.com/m?f=ms&rf=idx&tn=baidump3&ct=134217728&lf=&rn=&word={0}&lm={1}";returnstring.Format(format,newobject[]{info.MusicName+CommonSymbol.SYMBOL_SPACE+info.SingerName,info.MusicFormat.ToString("D")});}catch{returnstring.Empty;}}///<summary>///分析返回的DIV快内的歌曲信息///</summary>///<paramname="tr">歌曲tr块的HTML信息</param>///<returns>TR块中歌曲信息列表</returns>privateList<MusicInfo>MusicInfoBuild(stringtr){List<MusicInfo>list=newList<MusicInfo>();tr=tr.Replace("n",string.Empty);GroupCollectiongroups=RegexHelper.GetRegexGroup(tr,this.BAIDU_MUSIC_INFO_PATTERN,RegexOptions.IgnoreCase);if(groups!=null){MusicInfoinfo=newMusicInfo{MusicSource="百度音乐",MusicName=EncodeConverter.HtmlDecode(groups["MusicName"].Value),Album=EncodeConverter.HtmlDecode(RegexHelper.GetRegexGroupItem(tr,this.BAIDU_MUSIC_INFO_PATTERN_2,"Album",RegexOptions.IgnoreCase)),SingerName=groups["Singer1"].Value+""+groups["Singer2"].Value+""+groups["Singer3"].Value};stringstr=groups["LinkUrl"].Value;if(string.IsNullOrEmpty(str)){returnlist;}List<string>musicUrlList=MusicOperator.GetMusicUrlList(str);if((musicUrlList==null)||(musicUrlList.Count==0)){returnnull;}List<string>list3=musicUrlList;foreach(stringstr2inlist3){if(MusicOperator.urlIsValid(str2)){MusicInfoitem=info.Clone()asMusicInfo;item.MusicUrl=str2;item.MusicFormat=MusicOperator.GetMusicFormat(str2);list.Add(item);}}}returnlist;}publicList<MusicInfo>PageAnalysis(stringPageContent){List<MusicInfo>list=newList<MusicInfo>();try{List<string>list2=RegexHelper.GetRegexStringList(PageContent,this.BAIDU_TR_PATTERN,RegexOptions.Singleline|RegexOptions.IgnoreCase);if(list2==null){returnlist;}foreach(stringstrinlist2){list.AddRange(this.MusicInfoBuild(str));}}catch{}returnlist;}///<summary>///指定当前页面编码方式///</summary>///<returns></returns>publicEncodingPageEncode(){returnEncoding.GetEncoding("GB2312");}}}

解决方案

解决方案二:
Typetype=a.GetType("CMusicSearch.BaiduMusic.MainSearch",false);第一个参数末尾多了个空格,Typetype=a.GetType("CMusicSearch.BaiduMusic.MainSearch",false);这样试试看,
解决方案三:
引用1楼stonespace的回复:

Typetype=a.GetType("CMusicSearch.BaiduMusic.MainSearch",false);第一个参数末尾多了个空格,Typetype=a.GetType("CMusicSearch.BaiduMusic.MainSearch",false);这样试试看,

不是这个原因,我之前就已经试过了,还是没用
解决方案四:
Typetype=a.GetType("BaiduMusic.CMusicSearch.BaiduMusic.MainSearch",false);

haveatry
解决方案五:
引用3楼yanbuodiao的回复:

C#codeTypetype=a.GetType("BaiduMusic.CMusicSearch.BaiduMusic.MainSearch",false);haveatry

试过了,还是不行
解决方案六:
你这样还不如直接用Typetype=a.GetType("BaiduMusic.CMusicSearch.BaiduMusic.MainSearch");第2个参数置为false没意义.参见该函数说明:truetothrowanexceptionifthetypeisnotfound;falsetoreturnnull.
解决方案七:
之前我有试过去掉false,不过还是一样,返回null
解决方案八:
那你试这加一个其他类看能不能反射到。
解决方案九:
Debug啊,exception都给你抛出来了,还不知道啥原因,那神仙也没办法了.
解决方案十:
这样试试看:Assemblya=Assembly.LoadFrom("BaiduMusic.dll");Modulemodule=a.GetModule("BaiduMusic.dll");Typetype=module.GetType("CMusicSearch.BaiduMusic.MainSearch",false);
解决方案十一:
如果不行,建议把a里的所有type打印出来,看看都是什么Assemblya=Assembly.LoadFrom("BaiduMusic.dll");Type[]vtClass=a.GetTypes();stringstrText="";foreach(TypetinvtClass){strText+=t.FullName;strText+="rn";}MessageBox.Show(strText);
解决方案十二:
引用10楼stonespace的回复:

如果不行,建议把a里的所有type打印出来,看看都是什么Assemblya=Assembly.LoadFrom("BaiduMusic.dll");Type[]vtClass=a.GetTypes();stringstrText="";foreach(TypetinvtClass){strText+=t.FullName;strText……

Debug到Type[]vtClass=a.GetTypes();这一句,出现下面异常未处理的“System.Reflection.ReflectionTypeLoadException”类型的异常出现在mscorlib.dll中。其他信息:无法加载一个或多个请求的类型。有关更多信息,请检索LoaderExceptions属性。难道是BaiduMusic.dll有问题?还是我配置出问题了?不过Assemblya=Assembly.LoadFrom("BaiduMusic.dll");能得到a为{BaiduMusic,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null},刚接触c#,不是很懂。
解决方案十三:
刚才尝试了一下不用动态添加,在工程里面手动添加引用BaiduMusic.dll,里面的类BaiduMusic是可以正常使用的,说明BaiduMusic.dll是没有问题的。不过动态添加为什么就实现不了呢?求指点啊
解决方案十四:
可能是权限的问题,
解决方案十五:
引用13楼stonespace的回复:

可能是权限的问题,

权限?有没有办法解决的?

时间: 2024-10-22 11:56:13

为什么Assembly.GetType()返回null,求大神指点的相关文章

arraylist-java.lang.NumberFormatException: null 求大神!!

问题描述 java.lang.NumberFormatException: null 求大神!! 教师公寓与教师的关系 程序是想通过教师公寓的id获取teacher这个集合 比如几号公寓住着哪些教师 一直报转换类型错误 求大神看看 service里面的代码 public static List<Teacher> findTeacher(int id){ List<Teacher> teacher = new ArrayList<Teacher>(); SqlSessio

使用com.google.zxing扫描二维码返回Activity出错,求大神指点一下

问题描述 使用com.google.zxing扫描二维码返回Activity出错,求大神指点一下 调用代码 scanner_img.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { setSelected(); scanner_img.setSelected(true); scanner_text.setSelected(true); //扫描二维码 Intent inten

求大神指点 java无参带返回值方法问题

问题描述 求大神指点 java无参带返回值方法问题 max=(age>max)?age:max; 这这话是什么意思? 解决方案 max=(age>max)?age:max; 这是三步运算给max赋值,就相当于: f(age>max){ max=age; }else{ max=max; } 解决方案二: 如果age>max为真,则max=age,否则max=max 解决方案三: 如果age>max,就把age放入max 这个程序配合循环可以找到年纪最大的人 解决方案四: jav

node js-Express node.js 如何访问一个域名 并返回数据求大神指教

问题描述 Express node.js 如何访问一个域名 并返回数据求大神指教 我是要去调用接口 (这个接口是别人写好了的 有自己的域名 我只要传参过去 接口就会返回json数据) 才刚学node.js 想想请教大神 给点思路 或者源代码

怎么调用 ace++接口-android怎么上传图片到FACE++ 接口返回年龄信息,我已经有账号,求大神指点 小弟感激不尽

问题描述 android怎么上传图片到FACE++ 接口返回年龄信息,我已经有账号,求大神指点 小弟感激不尽 android怎么上传图片到FACE++ 返回年龄信息,我已经有账号,求大神指点 小弟感激不尽 解决方案 http://www.cnblogs.com/mainroadlee/archive/2013/10/26/android_sdk_face_detection.html 解决方案二: FACE++的作用就是把图片上的人物识别出来,然后返回给你一个json字符串,里面包括一些列的信息

图片-(可交易,求指点)一个接口,用php发送xml到某个网址,执行后返回xml,求大神指点具体该怎么操作

问题描述 (可交易,求指点)一个接口,用php发送xml到某个网址,执行后返回xml,求大神指点具体该怎么操作 用php提交xml到网站http://tyty.soft200.com:888/,执行并返回xml,求大神指点,谢谢 (可以交易,求指点:加qq914432635) 以下是他们的实例,在自己的软件上的一串xml,具体信息可以参考图片 <?xml version='1.0' encoding='UTF-8'?> --系统根据此值判断是添加还是更新 --系统根据此值判断是添加还是更新 以

sphinx根据SetGeoAnchor的范围查找为什么一只返回false,求大神门的帮助 !

问题描述 sphinx根据SetGeoAnchor的范围查找为什么一只返回false,求大神门的帮助 ! $long=(float)$long; $lat=(float)$lat; $radius = (float) 10000.0 * 1.61; //搜索10公里以内的地点 /****引入文件*****/ require('./sphinxapi.php'); //实例化 $sphinx=new SphinxClient(); $sphinx->SetServer('localhost',93

c语言-C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0

问题描述 C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0 代码如下, #include "winsock2.h" #include "Winsnmp.h" #include 这里是string以下都要用 < 和 > 括起来(不知为何不显示=,=) #include vector #include algorithm #include iostream #pragma comment(lib,"

java中网络编程关于使用ObjetInputStream传输报错的问题,求大神指点

问题描述 java中网络编程关于使用ObjetInputStream传输报错的问题,求大神指点 以下贴出来的代码为通过ObjectInputStream(OutputStream)在客户端与服务器端之间交互时传输的对象,提供的图片中一个是客户端的代码片段,一个是服务器端的代码片段. 现在问题出在当客户端输完账号密码点击确定时,客户端卡死(应该是线程阻塞).服务器端抛出异常 :java.lang.ClassNotFoundException: com.wish.data.TransferObjec

大数据-ajax异步请求数据问题。。。看不出哪里错了。。。跪求大神指点。。。

问题描述 ajax异步请求数据问题...看不出哪里错了...跪求大神指点... 我做ajax读取Excel表格里的数据...这是JAVA代码 java: public static List<HashMap<Object,Object>> readExcel(String excelPath){ //声明一个集合用于存储解析出来的数据 List<HashMap<Object,Object>> maps = new ArrayList<HashMap&l