public ExecutableScript MakeScriptExecutable(LinqPadQuery script, string generatedDataContextCode) { var program = new ExecutableScript(); // Set Assemblies // GAC Reference parsing from: https://github.com/mcintyre321/LINQPadRunner/blob/master/LPRun/Program.cs var assemblyGroups = new[] { script.GACReferences.Select(s => s.Substring(0, s.IndexOf(",")) + ".dll"), script.RelativeReferences, script.OtherReferences, StandardAssemblies, }; program.AssemblyReferences.AddRange(assemblyGroups.SelectMany(group => group)); // Prepare to Include Namespaces var namespaceGroups = new[] { script.Namespaces, StandardNamespaces }; var namespaces = String.Join("\n", from namespaceGroup in namespaceGroups from nspace in namespaceGroup select string.Format("using {0};", nspace)); // Wrap Code in Main() method (if needed) var scriptMethodCode = ConvertScriptIntoMethodByQueryKind(script, generatedDataContextCode); var code = string.Format(@" // Namespaces {0} namespace Generated {{ public class MyProgram {{ {1} }} }} ", namespaces, scriptMethodCode); // Add Code and DataContext source to executable script program.SourceCodePieces.Add(code); program.SourceCodePieces.Add(generatedDataContextCode); return(program); }
public ExecutableScript MakeScriptExecutable(LinqPadQuery script, string generatedDataContextCode) { var program = new ExecutableScript(); // Set Assemblies // GAC Reference parsing from: https://github.com/mcintyre321/LINQPadRunner/blob/master/LPRun/Program.cs var assemblyGroups = new[] { script.GACReferences.Select(s => s.Substring(0, s.IndexOf(",")) + ".dll"), script.RelativeReferences, script.OtherReferences, StandardAssemblies, }; program.AssemblyReferences.AddRange(assemblyGroups.SelectMany(group => group)); // Prepare to Include Namespaces var namespaceGroups = new[] { script.Namespaces, StandardNamespaces }; var namespaces = String.Join("\n", from namespaceGroup in namespaceGroups from nspace in namespaceGroup select string.Format("using {0};", nspace)); // Wrap Code in Main() method (if needed) var scriptMethodCode = ConvertScriptIntoMethodByQueryKind(script, generatedDataContextCode); var code = string.Format(@" // Namespaces {0} namespace Generated {{ public class MyProgram {{ {1} }} }} ", namespaces, scriptMethodCode); // Add Code and DataContext source to executable script program.SourceCodePieces.Add(code); program.SourceCodePieces.Add(generatedDataContextCode); return program; }