我有这种情况,我需要将C#转换为VB.NET项目。 (我想自动化,所以我不能使用在线工具或类似的东西)Roslyn:将C#转换为VB
有a "Paste as C#/VB" sample visual studio extension似乎能够做到这一点。
我试图将这个类:
namespace TestApplication
{
class Class1
{
/// <summary>
/// Lorem
/// </summary>
public void Lorem()
{
}
}
}
但它结束了与此:
Namespace TestApplication
Class Class1
''' <summary> Lorem </summary> Public Sub Lorem()
End Sub
End Class
End Namespace
时提供的XML文档注释继承其他时候它不只是发生,但有时也类等
下面是处理样本转换的代码:
csharpToVisualBasicConverter.Convert返回一个SyntaxNode实例。
private void PasteAsVB()
{
var csharpCode = Clipboard.GetText(TextDataFormat.Text);
var tree = CS.SyntaxTree.ParseText(csharpCode);
var visualBasicCode = csharpToVisualBasicConverter.Convert(tree);
var start = wpfTextView.Selection.SelectedSpans.Min(s => s.Start).Position;
var end = wpfTextView.Selection.SelectedSpans.Max(s => s.End).Position;
var span = Span.FromBounds(start, end);
wpfTextView.TextBuffer.Replace(span, visualBasicCode.ToFullString());
}
由于没有异常调用转换方法时,我假定该方法返回一个有效SyntaxNode和SyntaxNode.ToFullString()方法或编码问题搅乱换行等
难道任何人都遇到过这个问题,并找到解决方案?
由于可能没有彻底解决我的问题,因为该产品看起来像最坚实的一个,标志着我这是公认的答案。 – Leo
我也用自己的即时C#产品走另一条路(VB.NET => C#),并能转换一个沉重的解决方案,无需任何显著的问题。这是早在2007年,但我肯定会去给他们一个镜头,如果我不得不做一遍。 –
这不转换剃刀代码(.cshtml到.vbhtml),反之亦然。 –