static void Main(string[] args) { MacroProcessor.Register <Foo>(); double mSecFrequency = (Stopwatch.Frequency / 1000); string result = null; Stopwatch sw = Stopwatch.StartNew(); CompiledTemplate compiledTemplate = MacroProcessor.Compile("Hello, my name is [name] and I'm [age] years old"); Console.WriteLine($"Compilation duration : {sw.ElapsedTicks / mSecFrequency} msecs"); int iteration = 1000 * 1000; sw = Stopwatch.StartNew(); for (int i = 0; i < 1000 * 1000; i++) { result = MacroProcessor.Process("I'm [name], I'm [age] years old", new Foo(42, "Josh")); } Console.WriteLine($"Result: {result}"); Console.WriteLine($"AVG rendering duration : {sw.ElapsedTicks / iteration / mSecFrequency * 1000} usecs over {iteration} iterations"); System.Console.ReadKey(); }
/// <summary> /// Преобразует значение с помощью макропроцессора /// </summary> /// <param name="value">значение, которое нужно преобразовать</param> /// <param name="defaultValue">возвращаемое значение по умолчанию</param> /// <param name="processor">макропроцессор</param> /// <returns>целое значение, полученное после работы макропроцессора</returns> private int processInt(string value, int defaultValue, MacroProcessor processor) { if (value == null || value == string.Empty) { return(defaultValue); } string processedValue = processor.Process(value); if (processedValue == null || processedValue == string.Empty) { return(defaultValue); } return(Convert.ToInt32(processedValue)); }
public async Task <InputResult> SendInput(InputMessage input) { try { if (input.Type == InputType.Macro) { _macroProcessor.Process(input); } else { _inputProcessor.Process(input); } return(new InputResult { Ok = true }); } catch (Exception e) { return(new InputResult { Ok = false, Message = e.Message, }); } }