关于反射:获取类型失败的小问题

本文详细阐述了在C#项目中遇到无法引用特定命名空间的DLL时,如何通过检查项目引用、编译过程以及正确使用Type.GetType()方法来解决问题。包括在Web项目中确保引用正确、在Bin目录下生成对应DLL文件,以及通过完整路径名正确获取类类型的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于反射的问题

例如我们想获得某个类的类型时,明明写对了 NameSpace.ClassName ,却还是返回空值,为何?

例如:

Type.Get(“System.String”);   // 这个可以有,因为 System.String 就在 mscorlib.dll 中,这个是默认被项目引用的。
Type.Get("MyNameSpace.Data.MyClass"); // 这个发现找不到,返回一个NULL
基本上是因为…… 这个笨蛋没找到你引用的DLL,这种情况特别是不同类和命名空间之间的引用更常见。

首先检查:web项目中有木有引用对应的项目。

编译以后可以看到在Bin中产生了 MyNameSpace.Data.Dll

木有?所以,应用程序无法在web项目中找到对应的dll。
添加一个引用就OK了,可以这样写:

Type.GetType("MyNameSpace.Data.MyClass, MyNameSpace.Data");  //这样写就对了 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值