Ответы пользователя по тегу Отладка
  • Как реализовать строчную отладку кода в C#?

    lam0x86
    @lam0x86
    На самом деле, ничего сложного. Надо просто указать скрипту генерировать DebugInformation и указать путь к временному файлу с исходным кодом (студия не умеет дебажить исходники с памяти).

    Вот пример:

    class Program
        {
            static void Main(string[] args)
            {
                string scriptFileName = Path.GetTempFileName() + ".cs";
    
                var scriptBody = GenerateScript(scriptFileName);
    
                var script = CSharpScript.Create(
                    scriptBody,
                    globalsType: typeof(Globals),
                    options: ScriptOptions
                             .Default
                             .WithEmitDebugInformation(true)
                             .WithFilePath(scriptFileName)
                             .WithFileEncoding(Encoding.UTF8));
    
                var sum = script.RunAsync(new Globals {X = 56, Y = 42}).Result.ReturnValue;
    
                Console.Out.WriteLine(sum);
                Console.ReadKey();
    
                File.Delete(scriptFileName);
            }
    
            private static string GenerateScript(string fileName)
            {
                var body = 
    @"var result = X + Y;
    return result;
    ";
    
                File.WriteAllText(fileName, body, Encoding.UTF8);
    
                return body;
            }
        }
    
        public class Globals
        {
            public int X { get; set; }
    
            public int Y { get; set; }
        }
    Ответ написан
    Комментировать