有两个项目 项目A 为 DLL项目A
using System;namespace CheShidll
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
public List ReceiveMoMessage(string str)
{
List li=new List();
li.Content="aaa"+str;
return li;
}
}
public class List
{
public string Content;
}
}
然后我在项目B中调用项目A
Assembly dss = Assembly.LoadFile(@"D:\net1.0\CheShidll\bin\Debug\"+filename);//读取程序集foreach (Type type in dss.GetTypes())
{
MethodInfo m = type.GetMethod("ReceiveMoMessage"); //实例方法
if (m != null)
{
object o = Activator.CreateInstance(type);
List li=new List();
li=(List)m.Invoke(o, new object[] {"1234"});
}
}
(项目B也有List类 而且是一样的)
问题:在 li=(List)m.Invoke(o, new object[] {"1234"});这句
提示:指定的转换无效。请问我应该怎么解决这个问题?
(当我在DLL里返回string类型,用string s=(List)m.Invoke(o, new object[] {"1234"});调用时就没问题)
using System;namespace CheShidll
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
public List ReceiveMoMessage(string str)
{
List li=new List();
li.Content="aaa"+str;
return li;
}
}
public class List
{
public string Content;
}
}
然后我在项目B中调用项目A
Assembly dss = Assembly.LoadFile(@"D:\net1.0\CheShidll\bin\Debug\"+filename);//读取程序集foreach (Type type in dss.GetTypes())
{
MethodInfo m = type.GetMethod("ReceiveMoMessage"); //实例方法
if (m != null)
{
object o = Activator.CreateInstance(type);
List li=new List();
li=(List)m.Invoke(o, new object[] {"1234"});
}
}
(项目B也有List类 而且是一样的)
问题:在 li=(List)m.Invoke(o, new object[] {"1234"});这句
提示:指定的转换无效。请问我应该怎么解决这个问题?
(当我在DLL里返回string类型,用string s=(List)m.Invoke(o, new object[] {"1234"});调用时就没问题)
解决方案 »
- JS调用C#事件问题!在线等!
- 现在的一些IM软件为什么可以不用端口映射,这是什么原理?
- 最简单的FTP问题,获取流时提示“远程服务器返回错误: (530) 未登录”
- 本人在写一个爬虫(Spider),取得网站HTML后,什么方式去掉其中的JS代码最简单?
- 怎样弹出新的页面,而不是转到新的页面?
- notifyicon在任务栏图标上显示tooltip怎么弄哦
- C#中如何用反射的方式执行一个异步方法?
- 字符串编码转换问题?encoding.utf8 ,default
- Message类的Result怎么返回bool值?
- String类的实例为什么没有从另一个String构造的?
- 请高手帮我看段代码
- treeview的afterLabelEdit事件的困惑!!!!
这个即使在两个项目里都有,即使名字一样,那也是两个类,不能互相转换的。
你可以把这个类放到另外的一个项目C中,A和B都引用这个C