예제 #1
0
 public CompilerResults Compile(DirectoryInfo[] directories, string assemblyFileName, string[] referenceAssemblies = null, bool executable = false)
 {
     if (referenceAssemblies == null)
     {
         referenceAssemblies = DefaultReferenceAssemblies.ToArray();
     }
     return(AdHocCSharpCompiler.CompileDirectories(directories, assemblyFileName, referenceAssemblies, executable));
 }
예제 #2
0
        public void ShouldBeAbleToDownloadAndCompileCSharpProxy()
        {
            BamServer server;
            SecureServiceProxyClient <EncryptedEcho> sspc;

            ServiceProxyTestHelpers.StartSecureChannelTestServerGetEncryptedEchoClient(out server, out sspc);

            string   value    = Http.Get("http://localhost:8080/ServiceProxy/CSharpProxies?namespace=My.Test.Namespace&classes=EncryptedEcho");
            FileInfo codeFile = new FileInfo(".\\Tmp\\code.cs");

            if (codeFile.Directory.Exists)
            {
                codeFile.Directory.Delete(true);
            }
            codeFile.Directory.Create();
            value.SafeWriteToFile(codeFile.FullName, true);

            List <string> referenceAssemblies = new List <string>(DaoGenerator.DefaultReferenceAssemblies);

            referenceAssemblies.Add(typeof(ServiceProxyClient).Assembly.GetFileInfo().FullName);
            referenceAssemblies.Add(typeof(BamServer).Assembly.GetFileInfo().FullName);

            CompilerResults results = AdHocCSharpCompiler.CompileDirectories(new DirectoryInfo[] { codeFile.Directory }, ".\\Tmp\\TestClients.dll", referenceAssemblies.ToArray(), false);

            if (results.Errors.Count > 0)
            {
                StringBuilder message = new StringBuilder();
                foreach (CompilerError err in results.Errors)
                {
                    message.AppendLine(string.Format("File=>{0}\r\n{1}:::Line {2}, Column {3}::{4}",
                                                     err.FileName, err.ErrorNumber, err.Line, err.Column, err.ErrorText));
                }
                OutLine(message.ToString(), ConsoleColor.Red);
            }

            Expect.AreEqual(0, results.Errors.Count);

            Expect.IsTrue(results.CompiledAssembly.GetFileInfo().Exists);

            server.Stop();
        }
예제 #3
0
 private static void Compile(DirectoryInfo[] dirs, FileInfo file)
 {
     DaoGenerator generator = new DaoGenerator(GetNamespace());
     CompilerResults results = AdHocCSharpCompiler.CompileDirectories(dirs, file.Name, DaoGenerator.DefaultReferenceAssemblies.ToArray(), false);
     OutputCompilerErrors(results);
 }