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

Avalonia 11.1.0:文件夹创建Window/UserControl时命名空间不匹配问题咨询

Avalonia 11.1.0中Window/UserControl命名空间不匹配文件夹路径的原因

这个问题的核心是Avalonia框架自带的Window/UserControl模板,和IDE默认的普通类模板,在命名空间生成逻辑上存在差异:

  • 普通类的命名空间生成逻辑:
    IDE(VS/Rider等)自带的普通类模板,会自动读取当前创建文件的文件夹层级,将路径转换为命名空间的后缀。比如在Views/NewFolder文件夹下创建类,模板会自动把根命名空间AvaloniaApplication1和文件夹路径拼接成AvaloniaApplication1.Views.NewFolder。

  • Avalonia Window/UserControl的命名空间生成逻辑:
    Avalonia提供的Window/UserControl模板,命名空间部分只使用项目的根命名空间变量,没有关联当前文件夹的路径信息。模板里的命名空间代码是类似namespace $rootnamespace;的写法,这个变量只会取项目创建时设置的根命名空间(比如AvaloniaApplication1),不会根据文件夹位置自动扩展。

你可以对比两者的模板代码片段:
普通类模板的命名空间部分:

namespace $rootnamespace.$folderpath$
{
    internal class $safeitemname$
    {
    }
}

Avalonia Window模板的命名空间部分:

namespace $rootnamespace;

public partial class $safeitemname$ : Window
{
    public $safeitemname$()
    {
        InitializeComponent();
    }
}

简单来说,就是Avalonia的UI组件模板没做文件夹路径适配,而普通类模板做了,所以才会出现同一文件夹下两种类的命名空间不一致的情况。

内容的提问来源于stack exchange,提问作者Yannick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:52:33