You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决‘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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 00:22:28