Q:通过类名和方法名动态返回结果

bsetsail 2010-07-02 06:28:32
如题
类名是字符串
方法名师字符串
返回值是string
就是说现在就知道返回类型,不知道是哪个类和哪个方法,如何动态实现返回值呢?
...全文
113 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanfengsese 2010-07-03
  • 打赏
  • 举报
回复
应该是反射吧
学习下
qiqishardgel 2010-07-03
  • 打赏
  • 举报
回复
学习,帮顶!
pc_242 2010-07-02
  • 打赏
  • 举报
回复
xuexi.....
兔子-顾问 2010-07-02
  • 打赏
  • 举报
回复
代码贴的在详细都没用
楼主最需要的还是看书或msdn。了解一下反射是什么。才有助于知道自己需要的问题是什么。
heartdevil 2010-07-02
  • 打赏
  • 举报
回复
通过反射来做即可

/// <summary>
/// Use reflect to call function of dll
/// </summary>
/// <param name="strDllPath">The dll path</param>
/// <param name="fullClassName">Full class name of this class</param>
/// <param name="methodName">Method name of class</param>
/// <param name="args">arguments for the feture</param>
/// <returns>return result</returns>
private static object ReflectInvoke(string strDllPath, string fullClassName, string methodName,
params Object[] args)
{
Assembly ass = Assembly.Load(strDllPath);
Type type = ass.GetType(fullClassName);
object obj = ass.CreateInstance(fullClassName);
MethodInfo method = type.GetMethod(methodName);
object returnVal = method.Invoke(obj, args);
return returnVal;
}
shijiaokun 2010-07-02
  • 打赏
  • 举报
回复
3楼已经把反射机制说的很清楚了。按照LZ的思路,必须符合反射或者动态程序域加载的条件
捷哥1999 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 bsetsail 的回复:]
如题
类名是字符串
方法名师字符串
返回值是string
就是说现在就知道返回类型,不知道是哪个类和哪个方法,如何动态实现返
回值呢?
[/Quote]
给你一个思路吧1、你如果要通过反射来获取,那么你要知道dll,知道类名,知道方法名。现在你的情况是,知道dll吗?如果知道dll,就可以加载这个dll,然后获取这里面所有的方法,判断其返回值是否是string,如果这个dll只有一个返回值是string类型的方法,那么好办,如果有n个?你怎么办?总得有个判别机制对吧,计算机最笨也最聪明,只要你能告诉他条件,他就能准确无误的搞定,但是你要是不给出条件,他什么都不能干。

2、如果你连dll都不知道,那么你必须至少要知道dll的位置,例如某个目录,然后循环处理,加载这个目录下的所有dll,去进行第一步那样的匹配工作。
lester19872007 2010-07-02
  • 打赏
  • 举报
回复
这个好型可以通过模板来做,方法应该有很多,比如:数据字典,泛型。
aifengtouxinxin 2010-07-02
  • 打赏
  • 举报
回复
顶 学习

111,096

社区成员

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

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

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