为项目中的文件命名 A.Designer.cs 将使其嵌套到 A.cs

Giving file in the project a name A.Designer.cs will make it nested to A.cs

提问人:Sinatr 提问时间:8/2/2023 更新时间:8/2/2023 访问量:28

问:

我刚刚发现了 Visual Studio 的一个有趣的功能(使用 VS2022),重命名现有类或创建与另一个类同名的新类,并使其嵌套到另一个类。".Designer"

以一个简单的控制台项目为例:

enter image description here

csproj-file 中没有任何内容表明它是嵌套的。我通常会期待类似的东西

<ItemGroup>
  <Compile Update="Localization\LocalizedStrings.cs">
    <DesignTime>True</DesignTime>
    <AutoGen>True</AutoGen>
    <DependentUpon>LocalizedStrings.tt</DependentUpon>
  </Compile>
  <Compile Update="Views\SoftwareView.axaml.cs">
    <DependentUpon>SoftwareView.axaml</DependentUpon>
  </Compile>
   ...

我找到了这个答案,解释了设计器文件的不同角色。似乎它们应该被自动生成并得到特殊处理。

早些时候我使用的是插件

问题:使用这个“技巧”来制作嵌套的东西是否安全?我希望什么都不会被覆盖?是否有更多与按名称或其他方式自动嵌套文件相关的技巧?

C# 嵌套 项目和解决方案

评论


答:

0赞 Sinatr 8/2/2023 #1

我会说是

坏主意

某些功能在此类文件中不起作用。".Designer.cs"

  1. 对于此文件中的类,不会显示某些(全部)警告(例如 C8618)。但是,会显示编译器错误并正常停止构建。

  2. 代码清理不执行任何操作:不格式化,不删除未使用的 using 等。但是 Intellisense 支持完全有效,或者至少我没有注意到任何差异。

这已经够糟糕的了。

VS 以不同的方式对待此类文件,假设它们确实是由某些工具自动生成的,并且只留下最少的检查。不是为人工编辑而设计的。