Я создаю редактор сценариев для своего приложения, и я хотел бы иметь возможность запускать как скрипты C#, так и VB.NET с помощью Roslyn. Я получил эту работу с C#, используя класс CSharpScript
в сборке/пространстве имен Microsoft.CodeAnalysis.CSharp.Scripting
, однако нет эквивалента класса VisualBasicScript
, который я могу найти, а также сборки Microsoft.CodeAnalysis.VisualBasic.Scripting
. Я просмотрел веб-страницы и не могу найти ничего полезного в работе скриптов VB.NET, и все образцы на сайте Glyub Roslyn являются C# -специфическими. Я что-то упускаю, или поддержка скриптов VB.NET просто не существует, как это делается для сценариев на C#?Может ли Roslyn использоваться для скриптов VB.NET?
2
A
ответ
1
Visual Basic Scripting is not currently available, предположительно потому, что it's not finished.
Но its source is is the Roslyn repo, так что вы можете попробовать его самостоятельно.
Когда я делаю, что код, как следующие работы для меня:
Dim result = VisualBasicScript.RunAsync("Dim result = 1+1").Result
For Each variable In result.Variables
Console.WriteLine($"{variable.Name}: {variable.Value}")
Next
Но этот код не работает для меня (это не удается при составлении сценария):
Console.WriteLine(VisualBasicScript.EvaluateAsync("1+1").Result)
Я m не уверен, происходит ли это из-за того, что он еще не закончен, или это намеренно отличается от сценариев C#.
+0
Спасибо за отличный ответ и ссылки. Не совсем то, на что я надеялся, но хорошо знать, что это, по крайней мере, в работах. – StuartMorgan
Смежные вопросы
- 1. Может ли многопоточность использоваться для одновременного запуска 100 perl-скриптов?
- 2. Ошибка Roslyn установка скриптов
- 3. VB.net XAML UWP Может ли общий класс использоваться для DataContext?
- 4. Может ли pydoc использоваться для создания manpages?
- 5. Может ли XML-файл использоваться как эффективный бэкэнд VB.NET?
- 6. Может ли с/End с (VB.NET) использоваться, когда IDisposable недоступен?
- 7. Может ли ConnectionKit использоваться?
- 8. Может ли Roslyn компилировать ключевое слово ожидания?
- 9. Может ли Roslyn проанализировать мой «пользовательский» синтаксис?
- 10. Может ли Lua использоваться для разработки приложений?
- 11. Может ли uploadify.js использоваться для мобильных платформ?
- 12. Может ли Sikuli использоваться для веб-тестирования?
- 13. Может ли UDK использоваться для неигровых проектов?
- 14. Может ли OpenMP использоваться для графических процессоров?
- 15. Может ли GPU использоваться для общего программирования?
- 16. Может ли Apache Wink использоваться для Android?
- 17. R: может ли `assign` использоваться для моделей?
- 18. Может ли memcached использоваться для блокировки?
- 19. Может ли typeid() использоваться для передачи функции?
- 20. Может ли InAppSettingsKit использоваться только для Settings.app
- 21. Может ли InvalidOperationException использоваться для статических классов?
- 22. Может ли CouchDB использоваться для настольного приложения?
- 23. Может ли GHCI использоваться для объяснения принуждений?
- 24. Может ли DMTCP использоваться для миграции процесса?
- 25. Может ли StackExchange.Redis использоваться для хранения POCO?
- 26. Может ли класс HttpListener использоваться для обнюхивания?
- 27. Может ли это использоваться для redis
- 28. PHP: Может ли диапазон() использоваться для фракций?
- 29. Может ли VBScript использоваться для общедоступных сайтов?
- 30. Может ли NFC использоваться для передачи аудио?
Я не дошел до того, что создал собственный редактор скриптов (учитывая, что Actipro делает то, что соответствует моим потребностям), но я знаю (после обсуждения и выхода на их веб-сайт), что хотя .net framework (и, наконец, языки) были открыты, фактический движок Roslyn/компилятор был не таким, как на данный момент, их редактор синтаксиса не поддерживает новейшие синтаксические нюансы языков .net. Мне жаль, что это прямо не отвечает вам, поскольку я не знаю точно, но я сильно подозреваю, что ответ в настоящее время окажется неважным. –
Я использую сторонний инструмент (Infragistics xamSyntaxEditor) для фактического выделения текста/подсветки синтаксиса и просто создаю пользовательский интерфейс для загрузки/сохранения сценариев, а также запускать их и отображать их результаты. – StuartMorgan