C# 是否提供编译时方法来基于注释重构代码?

Does C# offer a compile-time way to refactor code based on annotations?

我还没有用 C# 写过很多东西,主要是用 C++ 写的,所以我想知道 C# 是否提供了一种方法让您指示编译器根据注释在编译时重构代码?

基本上我正在寻找一种方法,让编译器自动将每个未列入黑名单的 class 变量包装在自定义包装器 class 中,并为包装类型设置赋值和转换运算符。因此,您只需使用 public int someInt; 作为常规整数,而不是 public CustomWrapper<int> someInt;,如果 class 使用相应的注释进行注释,编译器将重构代码。

为了防止一些快速评论,自定义包装器非常重要。

这不是 C# 甚至 .NET 中内置的。您正在寻找的是 IL 重写工具或 AOP 工具。这些都是在 代码编译后应用的。看看

  • Fody - "Extensible tool for weaving .net assemblies"
  • PostSharp - AOP 代码编织器(商业)

这里有一个 article 可以帮助您自己滚动。

如果您必须或想要在编译之前进行一些复杂的重构,您可以write a custom Rosyln code analyzer和相应的代码修复。这使它成为半自动的;如果您在编写代码时应用建议,代码可以根据代码修复进行转换。