请问一个反射对象强制转换的问题

cmlove_xixi 2009-12-25 11:18:15
我使用反射获取一个类的对象object 请问下桌面才能把这个object 转换成我需要的那个类啊
object obj = System.ReflectionAssembly.GetExecutingAssembly().CreateInstance(this.GetType().Namespace + "." + "MyClass", false);
MyClass是我的类名

现在想把这个object转成MyClass类对象

谢谢
...全文
327 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 sandy945 的回复:]
引用 18 楼 cmlove_xixi 的回复:
引用 16 楼 sandy945 的回复:
对象都不确定 你怎么.方法名


对啊 现在就是对象没办法强制转换!!



我上面的都白说了。

现在是你写代码,你知道对象 可以.出哪些方法 并选出你需要的方法

你认为 编译器 会和你一样这样智能么?

知道当前对象 获得当前对象 自动调用相应方法?
[/Quote]

呵呵 知道了 看来这样真的行不通了啊 那我换换做法吧 谢谢了啊
阿非 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 cmlove_xixi 的回复:]
引用 16 楼 sandy945 的回复:
对象都不确定 你怎么.方法名


对啊 现在就是对象没办法强制转换!!

[/Quote]

我上面的都白说了。

现在是你写代码,你知道对象 可以.出哪些方法 并选出你需要的方法

你认为 编译器 会和你一样这样智能么?

知道当前对象 获得当前对象 自动调用相应方法?
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
现在我的问题就是 要根据一个object对象 和一个类名字符串 这个类名只是个字符串,来将这个object转换成这个类名对象

谢谢
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 pc6588 的回复:]
http://www.cnblogs.com/xianzuoqiaoqi/archive/2009/04/07/1431153.html
[/Quote]

这个非得要明确知道方法名才行的啊!!
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sandy945 的回复:]
对象都不确定 你怎么.方法名
[/Quote]

对啊 现在就是对象没办法强制转换!!
pc6588 2009-12-25
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xianzuoqiaoqi/archive/2009/04/07/1431153.html
阿非 2009-12-25
  • 打赏
  • 举报
回复
对象都不确定 你怎么.方法名
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sandy945 的回复:]
首先,你的想法是实现不了的。

退一步说 ,就算你这步可以过去,下步呢 调用方法的时候 你如何知道当前对象 有什么方法


[/Quote]

我是想通过强制转换后能通过对象.方法名来做
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
因为类很多 我不想实例化那么多类对象 想用类名来反射,这也是不得已才想出的方法,难道真的不能这么实现吗??
谢谢
阿非 2009-12-25
  • 打赏
  • 举报
回复
首先,你的想法是实现不了的。

退一步说 ,就算你这步可以过去,下步呢 调用方法的时候 你如何知道当前对象 有什么方法

cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
我的代码是这样的
object obj = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(this.GetType().Namespace + "." + ValidateFactory.GetValidateEntityName(), false);

红色的部分就是获取类名的方法 ,它只是返回了一个字符串
谢谢
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 angel6709 的回复:]
引用 4 楼 yjcel1988 的回复:
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类

用接口,抽象类都可以
[/Quote]

目前就是用不了接口或抽象类 因为要实现的各种类中有各种复杂的方法 所以用不了工厂模式做

谢谢
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sandy945 的回复:]
要么你知道名字 要么一路反射到底

up
[/Quote]

现在这个object已经是我要的对象了 只是不知道桌面强制转换它,因为我的类名只是一个方法返回的字符串

谢谢
angel6709 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yjcel1988 的回复:]
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
[/Quote]
用接口,抽象类都可以
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yjcel1988 的回复:]
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
[/Quote]

不行的啊 增加父类后强制转成父类那么子类中写的方法就不能用了。本来我是要用工厂接口做的,但是我的这个实现会很复杂所以只能通过一个公有方法获取类名然后反射成一个对象然后转换,但现在不知道怎么转换成目标对象了,因为反射回来就是个object

谢谢
阿非 2009-12-25
  • 打赏
  • 举报
回复
要么你知道名字 要么一路反射到底

up
zgke 2009-12-25
  • 打赏
  • 举报
回复
不知道类名..... 如果你反射的是自己的东西 可以考虑使用接口来实现..

如果不是你自己的东西...要么你知道名字 要么一路反射到底.
阿非 2009-12-25
  • 打赏
  • 举报
回复
不知道类名 就没办法
yjcel1988 2009-12-25
  • 打赏
  • 举报
回复
增加一个父类,所有的要反射的类都继承它,在上面的代码中强制转换成父类
cmlove_xixi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
MyClass mc= obj as MyClass;
if(mc!=null)
{
  ... do sth
}
[/Quote]


我现在是举个例子说那个类叫MyClass 其实我不知道类名,类名是通过哟个方法返回的字符串。也就是说我反射这个类对象的时候不知道它的名字 而是用一个方法获取了一个类名的字符串而已。
谢谢
加载更多回复(6)

110,545

社区成员

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

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

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