将 Roslyn 代码重构作为 NuGet 包发送
Ship Roslyn code refactoring as NuGet package
安装 .NET Compiler Platform SDK 时,您会得到 Visual Studio 个用于创建 "Analyzer with Code Fix (NuGet + VSIX)" 和 "Code Refactoring (VSIX)" 的模板。
为什么没有用于使用 NuGet 进行代码重构的模板(例如 "Code Refactoring (NuGet + VSIX)")?
甚至可以从 NuGet 包添加代码重构提供程序(通过手动创建 NuGet 包)吗?
在每个项目的基础上安装代码重构提供程序没有意义吗?
编辑:
我的用例是代码重构,它从非类型化数据(如 JSON)生成 C# 类型。这基本上就是 F# 类型的提供程序(尽管它们当然更强大)。这意味着用户创建了一个像下面这样的 class
[JsonProvider("http://example.com/data.json")]
public class ExampleData
{
}
并且重构使用从属性中的 url 获取的示例数据中的属性填充它:
[JsonProvider("http://example.com/data.json")]
public class ExampleData
{
public string Property1 { get; private set; }
public int Property2 { get; private set; }
public void Load(Uri uri) { ... }
public void FromData(string data) { ... }
...
}
我不想创建分析器的原因是用户应该能够决定何时更新 C# 类型。因为我真的不知道 URL 指向的数据何时发生变化。而且我不想用她无法摆脱的波浪线来惹恼用户。
目前不支持通过 NuGet 分发重构,但我们希望在将来添加。
安装 .NET Compiler Platform SDK 时,您会得到 Visual Studio 个用于创建 "Analyzer with Code Fix (NuGet + VSIX)" 和 "Code Refactoring (VSIX)" 的模板。
为什么没有用于使用 NuGet 进行代码重构的模板(例如 "Code Refactoring (NuGet + VSIX)")?
甚至可以从 NuGet 包添加代码重构提供程序(通过手动创建 NuGet 包)吗?
在每个项目的基础上安装代码重构提供程序没有意义吗?
编辑: 我的用例是代码重构,它从非类型化数据(如 JSON)生成 C# 类型。这基本上就是 F# 类型的提供程序(尽管它们当然更强大)。这意味着用户创建了一个像下面这样的 class
[JsonProvider("http://example.com/data.json")]
public class ExampleData
{
}
并且重构使用从属性中的 url 获取的示例数据中的属性填充它:
[JsonProvider("http://example.com/data.json")]
public class ExampleData
{
public string Property1 { get; private set; }
public int Property2 { get; private set; }
public void Load(Uri uri) { ... }
public void FromData(string data) { ... }
...
}
我不想创建分析器的原因是用户应该能够决定何时更新 C# 类型。因为我真的不知道 URL 指向的数据何时发生变化。而且我不想用她无法摆脱的波浪线来惹恼用户。
目前不支持通过 NuGet 分发重构,但我们希望在将来添加。