如何解决‘Application’在System.Windows.Application与System.Windows.Forms.Application间的歧义引用问题
解决
Application类的歧义引用问题 我之前也踩过这个烦人的坑——当项目同时引用了WPF和WinForms的程序集时,Application类就会因为两个命名空间都存在这个类而产生歧义。给你几个实用的解决办法:
完全限定命名空间调用
直接在代码里写完整的命名空间路径,明确指定你要用的是哪个Application:// 调用WPF的Application var currentWpfApp = System.Windows.Application.Current; // 调用WinForms的Application var openForms = System.Windows.Forms.Application.OpenForms;你之前尝试的
System.Application是无效的,因为.NET里根本没有这个命名空间下的Application类,必须指定到System.Windows或者System.Windows.Forms层级才行。使用using别名简化代码
如果需要频繁调用这两个类,在代码文件顶部给它们分别起别名,之后用别名调用会更简洁:// 文件顶部添加别名 using WpfApp = System.Windows.Application; using FormsApp = System.Windows.Forms.Application; // 后续使用别名操作 var wpfCurrent = WpfApp.Current; var formsOpen = FormsApp.OpenForms;移除不必要的程序集引用
如果你的项目其实不需要同时用到WPF和WinForms,直接在项目引用里删掉其中一个框架的引用(比如不需要WinForms就移除System.Windows.Forms),从根源上消除歧义。
内容的提问来源于stack exchange,提问作者Geniuni G
相关产品推荐
相关产品推荐

