关于反射的问题
例如我们想获得某个类的类型时,明明写对了 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"); //这样写就对了
本文详细阐述了在C#项目中遇到无法引用特定命名空间的DLL时,如何通过检查项目引用、编译过程以及正确使用Type.GetType()方法来解决问题。包括在Web项目中确保引用正确、在Bin目录下生成对应DLL文件,以及通过完整路径名正确获取类类型的实用技巧。
1272

被折叠的 条评论
为什么被折叠?



