Старая тема, но, учитывая, что это один из первых потоков, появляющихся при поиске, вот обновленное решение.
Вы можете использовать Новый API сценариев Roslyn для оценки выражений .
Если вы используете NuGet, просто добавьте зависимость к Microsoft.CodeAnalysis.CSharp.Scripting .
Чтобы оценить приведенные вами примеры, достаточно просто:
var result = CSharpScript.EvaluateAsync("1 + 3").Result;
Это, очевидно, не использует асинхронные возможности скриптового движка.
Вы также можете указать оцененный тип результата, как вы и предполагали:
var now = CSharpScript.EvaluateAsync<string>("System.DateTime.Now.ToString()").Result;
Чтобы оценить более сложные фрагменты кода, передать параметры, предоставить ссылки, пространства имен и еще много чего, проверьте вики, связанную выше.