c#-如何调用不同命名空间下的同名类和同名方法
实际开发过程中,可能遇到过以下情况,即项目中同时引用两个Nuget包A和B,当前类文件需要用到A包里某个类下面的方法,但是调用过程中发现B包也还有同名类的同名方法,且当前类文件不能只引用A包,必须也要引用B包,因为需要调用B包其它的类里面的方法。具体场景如下:



MyCommonUtil和SqlSugarOrm项目都有UtilExtensions同名类,且该类中都有同名方法ObjToString,客户端同时引用了这两个项目,且当前客户端Program类文件必须同时引用这两个命名空间,此时调用UtilExtensions.ObjToString方法就会报错,提示“UtilExtensions”是“MyCommonUtil.UtilExtensions”和“SqlSugarOrm.UtilExtensions”之间的不明确的引用。
解决办法一:由于二者的命名空间不一样,所以可以在类名前加上命名空间用来区分,如下所示。
MyCommonUtil.UtilExtensions.ObjToString(str);
或者
SqlSugarOrm.UtilExtensions.ObjToString(str);
解决办法二:通过using语句的别名功能也可以用来区分引用,如下所示。
using Alias1 = MyCommonUtil;
using Alias2 = SqlSugarOrm;
Alias1.UtilExtensions.ObjToString(str);
或者
Alias2.UtilExtensions.ObjToString(str);
人生如逆旅
我亦是行人

浙公网安备 33010602011771号