refactoring - 在新文件重构扩展中创建 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 项目是一个相当小众的主题,而且工作量不大。
解决方案
如果您不知道重构列表中最后一个“生成新类型...”选项,则会弹出一个对话框,允许您自定义某些行为,包括类的访问修饰符。我们不允许您选择属性,但这是一个很好的建议。
Visual Studio (Roslyn) 的 C# 引擎是开源的,因此您至少可以在此处找到一小部分代码:https ://github.com/dotnet/roslyn/tree/master/src/Features/Core/Portable /生成类型。也就是说,那里有很多代码,并且依赖于大量的东西......这对于重写和轻松提取来说并非易事。您可能最好尝试修改它,然后运行自定义 Roslyn 进行试验。您可能还想考虑在 Roslyn 存储库上提出问题或讨论,因为老实说,这可能只是我们通过拉取请求获得的一个功能。
推荐阅读
- java - 如何减小 GIF 大小?
- batch-file - Windows 批量回显倒计时
- css - 为 css-grid 中的一组列定义最大宽度
- getgauge - 如何在其他浏览器中使用仪表/太鼓?
- angular - 单元测试后关闭 ngx-bootstrap 模式
- couchbase - Couchbase 内部进程占用大量 CPU
- perl - Perl 的“Switch”在 HERE 文档中抓取了一个“case”字符串并感到困惑?
- ms-office - 使用 Cortana 控制演示文稿
- facebook - 如何从 Facebook 嵌入式帖子中隐藏喜欢、分享、评论按钮?
- angular - Angular 7 ngrx 编辑商店没有特定操作