我可以建议“生成方法存根”在 Visual C# 中存储新生成代码的位置吗?

Posted

技术标签:

【中文标题】我可以建议“生成方法存根”在 Visual C# 中存储新生成代码的位置吗?【英文标题】:Can I suggest "Generate method stub" where to store new generated code in Visual C#? 【发布时间】:2014-01-03 20:31:19 【问题描述】:

我正在使用 Microsoft Visual C# 2010。

我在两个文件中有一个类:

file1.cs

partial class SomeClass 
    // something

file2.cs

partial class SomeClass 
    // something else

现在,在项目的第三个位置,当我编写“SomeClass.SomeMethod()”并按 Alt+Shift+F10,然后选择“生成方法存根...”时,它总是会创建file1.cs中的代码。

我的问题是:是否可以在 file2.cs 中给出指令,以及如何做?

【问题讨论】:

reSharper 提供此选项,以防您考虑使用它。 你为什么需要这样的东西? 不,内置 VS 功能是不可能的 @Ktt 简而言之:我制作了一个工具,可以为一组类生成基本代码,并且在一个文件中。其中一些类需要额外的方法和/或属性。通过这种划分,如果我想更改所有类的基本代码的内容,我只需要更改算法,重新生成代码并覆盖相应的文件。如果一切都是混合的,那就更难了。剪切/粘贴代码的工作并不多,但如果我能更有效地做到这一点,为什么不呢:) 在我放弃寻找解决方案后,灯泡亮了,一个愚蠢的想法出现了。我只是重命名了文件,所以我想要存储生成的代码的那个是按字母顺序排列的第一个.有效!也许这不是一般的解决方案,但我得到了我想要的。现在是解决实际问题的时候了:)谢谢 【参考方案1】:

不,默认安装VS2010是不可能的

【讨论】:

【参考方案2】:

您应该能够使用以下文件命名约定创建代码生成部分

SomeClass.cs SomeClass.Generated.cs SomeClass.DataAccess.cs

所有这些文件将在每个文件中使用相同的代码组合在一起:

public partial class SomeClass

当您查看 csproj 原始文件时,您会看到类似

<Compile Include="SomeClass.cs" />
<Compile Include="SomeClass.DataAccess.cs">
  <DependentUpon>SomeClass.cs</DependentUpon>
</Compile>
<Compile Include="SomeClass.Generated.cs">
  <DependentUpon>SomeClass.cs</DependentUpon>
</Compile>

当您在 VS 解决方案资源管理器中查看布局时,所有“SomeClass.ChildMethodParts.cs”文件都将出现在树中的父级“SomeClass.cs”下。保持整个解决方案非常干净。

另外,还有一个 VS 插件,其中包含此功能作为菜单项。见http://vscommands.squaredinfinity.com/Features-SolutionExplorer#solutionexplorer-group

【讨论】:

【参考方案3】:

您可以使用 Resharper 功能。 (可以通过扩展管理器安装)

【讨论】:

以上是关于我可以建议“生成方法存根”在 Visual C# 中存储新生成代码的位置吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的 C# Visual Studio 项目中添加 VC++ DLL 作为引用?

自定义 Visual Studio [关闭]

如何从 Visual Studio 以调试模式运行 NUnit?

如何在 Visual Studio 2015 中禁用 C# 6 支持?

Visual Studio 智能感知/自动更正适用于 C# 术语,但不适用于 Unity

是否可以在 C# 中编写 Visual Studio Code 扩展