Embed-able LINQPad
Similar to the "embed linqpad as a control" suggestion, which would be nice, but I'm looking for a formal method of embedding LINQPad in the same AppDomain as the host. I've been running LINQPad embedded in Rhino3D for years, not as a user control but via the ExecuteAssembly method on the AppDomain (with process isolation disabled in LINQPad). Simply invaluable. Ever since the new separate process architecture was implemented in LINQPad my previous hack no longer works.
It would be great if there was a simple hook in LINQPad.exe that we could call to run LINQPad in the host applications AppDomain (which is what the method below did).
Am I missing a simple / similar solution? Here's what I had been doing in Rhino previously (I'm invoking from Rhino's IronPython subsystem), same method worked in Revit, AutoCAD, etc.:
def Runner():
try:
System.AppDomain.CurrentDomain.ExecuteAssembly(<LINQPad Exe Location>, Array[str](['-noupdate', '-noforward']) )
except:
pass
def embedLinqpad():
embedThread = System.Threading.Thread(ThreadStart(Runner))
embedThread.SetApartmentState(ApartmentState.STA)
embedThread.Start()
embedLinqpad()