0

我通过更改某些类的接口实现顺序给自己挖了一个洞。就目前而言,我需要通过并扩展许多属性来实现 Get 和 Set。Get 和 Set 方法非常相似,但非常棘手,难以实现自动化。例子:

Public Property SpecificTable as SpecificTableType

我有与此类似的属性,我需要将其扩展为:

Public Property SpecificTable as SpecificTableType
Get
  Return DirectCast(Me.Table, SpecificTableType)
End Get
Set(ByVal value as SpecificTableType)
  Me.Table = value
End Set

它非常简单,当我键入 Get 并在属性下按 Enter 时,VS Studio 会自动生成很多,包括Set(ByVal value as SpecificTableType)

这让我想知道,除了片段,因为我已经定义了属性,VS如何完成这个自动生成,我可以自定义它吗?它可以让我的手指免于一些痛苦。

4

2 回答 2

1

这是很难做到的方法,但如果您想花时间学习 Roslyn 并编写代码问题,这绝对是一个答案。

使用 Microsoft Roslyn,这是一个编译器即服务项目,可让您访问解析器、编译器(语义)功能。你可以用 Roslyn 做的是创建一个基于 a 文件的抽象语法树(循环所有类型的文件),并为每个 AST 搜索不包含明确定义的 getter 和 setter 的属性,并将该 AST 替换为有你喜欢的道具。

如果我需要在简单的替换应用程序无法做到的地方重做这个,这就是我会做的。

检查这些:http: //msdn.microsoft.com/en-us/vstudio/hh500769.aspx http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx

于 2012-11-13T20:48:24.013 回答
1

默认情况下,Visual Studio 不允许您自定义代码生成的该方面,除了允许您禁用“结束构造”行(End If、End Get 等)的自动插入之外。

有一些扩展允许模板驱动的代码生成,例如: http://visualstudiogallery.msdn.microsoft.com/4fbfd05a-f3e8-4f79-b912-def3e9cb28fc?SRC= VSIDE

看看这是否符合您的要求。

于 2012-11-13T19:51:58.410 回答