首页 > 解决方案 > 在新文件重构扩展中创建 VS 2019 生成类型

问题描述

我大量使用 VS 2019 快速重构,尤其是“在新文件中生成类型”重构。

但是,这种重构会生成这样的私有成员代码

    private FloorId id;
    private BuildingId buildingId;
    private SiteMapId siteMapId;

而我想要像这样的公共财产

    public FloorId Id{get;}
    public BuildingId BuildingId{get;}
    Public SiteMapId SiteMapId{get;};

此外,该类是使用类本身的内部访问修饰符生成的,我想要公开。

我无法确定如何自定义代码生成,所以我想我会创建一个自定义 VSIX 重构项目并构建我自己的重构实现。

我想尝试找到“在新文件中生成类”重构的源代码,以便我可以以此为基础来构建我自己的。

有谁知道我在哪里可以找到这个代码或类似的东西?

似乎创建自定义重构 VSIX 项目是一个相当小众的主题,而且工作量不大。

标签: refactoringroslynvsix

解决方案


如果您不知道重构列表中最后一个“生成新类型...”选项,则会弹出一个对话框,允许您自定义某些行为,包括类的访问修饰符。我们不允许您选择属性,但这是一个很好的建议。

Visual Studio (Roslyn) 的 C# 引擎是开源的,因此您至少可以在此处找到一小部分代码:https ://github.com/dotnet/roslyn/tree/master/src/Features/Core/Portable /生成类型。也就是说,那里有很多代码,并且依赖于大量的东西......这对于重写和轻松提取来说并非易事。您可能最好尝试修改它,然后运行自定义 Roslyn 进行试验。您可能还想考虑在 Roslyn 存储库上提出问题或讨论,因为老实说,这可能只是我们通过拉取请求获得的一个功能。


推荐阅读