将Roslyn代码重构为NuGet包

时间:2015-10-14 06:36:50

标签: c# nuget roslyn

安装.NET Compiler Platform SDK时,您将获得Visual Studio模板,以便使用代码修复(NuGet + VSIX)创建一个"分析器"和#34;代码重构(VSIX)"。

为什么没有用于运送使用NuGet进行代码重构的模板(例如"代码重构(NuGet + VSIX)")?
是否可以从NuGet包中添加代码重构提供程序(通过手动创建NuGet包)?
根据项目在项目上安装代码重构提供程序是否有意义?

编辑: 我的用例是一个代码重构,它从非类型化数据(如JSON)中生成C#类型。这基本上就是F#类型的提供者(当然它们更强大)。这意味着用户创建了类似以下的类

[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指向的数据何时发生变化。而且我不想用一条她无法摆脱的波浪线来惹恼用户。

1 个答案:

答案 0 :(得分:3)

目前不支持通过NuGet分发重构,但我们希望将来添加重构。