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 () или проблема с кодировкой портят разрывы строк и т. Д.

Кто-нибудь сталкивался с этой проблемой раньше и нашел решение?

Ответы на вопрос(5)

Ваш ответ на вопрос