Roslyn: конвертировать C # в VB
У меня есть случай, когда мне нужно конвертировать C # - в проект VB.NET. (Я хочу автоматизировать это, поэтому я не могу использовать онлайн-инструмент или что-то подобное)
Естьобразец визуальной студии "Вставить как C # / VB" который, казалось, был в состоянии сделать это.
Я попытался преобразовать этот класс:
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());
}
Поскольку при вызове метода convert нет исключений, я предполагаю, что метод возвращает допустимый SyntaxNode, а метод SyntaxNode.ToFullString () или проблема с кодировкой портят разрывы строк и т. Д.
Кто-нибудь сталкивался с этой проблемой раньше и нашел решение?