コード例 #1
0
 private static void SplitLongLines(List <string> lines, List <int> longLineNumbers)
 {
     if (longLineNumbers.Count > 0)
     {
         longLineNumbers.Sort();
     }
     for (int num = longLineNumbers.Count - 1; num >= 0; num--)
     {
         int    num2 = longLineNumbers[num] - 1;
         string text = lines[num2];
         lines.RemoveAt(num2);
         while (text.Length > 65535)
         {
             int num3 = VBExpressionCodeProvider.FindSafeSplitPosition(text);
             if (num3 <= 0)
             {
                 lines.Insert(num2, text);
                 return;
             }
             string item = text.Substring(0, num3) + " _";
             lines.Insert(num2, item);
             num2++;
             text = text.Substring(num3 + 1);
         }
         lines.Insert(num2, text);
     }
 }
コード例 #2
0
        private CompilerResults RetryCompile(CompilerParameters options, CompilerErrorCollection compilerErrorCollection)
        {
            CompilerResults result = null;
            string          text   = null;
            List <int>      list   = new List <int>();

            foreach (CompilerError item in compilerErrorCollection)
            {
                if (string.Equals(item.ErrorNumber, "BC30494", StringComparison.OrdinalIgnoreCase))
                {
                    list.Add(item.Line);
                    if (text == null)
                    {
                        text = item.FileName;
                    }
                }
            }
            if (text != null)
            {
                List <string> list2 = File.ReadAllLines(text).ToList();
                VBExpressionCodeProvider.SplitLongLines(list2, list);
                File.WriteAllLines(text, list2.ToArray());
                options.TempFiles = new TempFileCollection();
                result            = base.CompileAssemblyFromFile(options, text);
            }
            return(result);
        }