C# REPL Engine and SyntaxAnalyzer features. Projects goal is to create the remote REPL console for debugging purposes.
- Build and Run the REPLConsole application in Debug mode.
- Open the Output window at you Visual Studio IDE.
- Using the REPLConsole, create a new instance of the A:IDebuggable type and bind it with the static injector:
using REPLConsole;
var b = new A { Value = "New message" };
Program.aInjector.Bind(typeof(A), new ClassDebugger(b));
- Look at the Output and ensure that object was successfully injected.
- Now you are able to inject your own types. e.g.:
public class B : A {
public B() {
Value = "New value " + System.Guid.NewGuid().ToString();
Value2 = " Additional debug info vs code.";
}
public override DebugInfo GetDebugInfo() {
//any custom logic
return new DebugInfo(Value + Value2, 999);
}
}
- Bind the instance of the custom type:
Program.aInjector.Bind(typeof(A), new ClassDebugger(new B()));
- Open the Output and see the debug info.
- After the debug session you could change the ContainerMode:
Program.aInjector.ContainerMode = REPL.DI.ContainerMode.ReturnsFirst;
- Memory Usage: Minimize a garbage.
- Collectable assemblies
- CSharpCodeProvider().CreateCompiler().CompileAssemblyFromSource
- Using the MSIL Stream
- Others...
- Perf/Load testing.