Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. maximum number of methods supported in C# class

maximum number of methods supported in C# class

Scheduled Pinned Locked Moved C#
questioncsharp
32 Posts 13 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Luc Pattyn

    when in trouble, switch to Win64. :)

    Luc Pattyn [My Articles] [Forum Guidelines]

    V Offline
    V Offline
    vytheese
    wrote on last edited by
    #12

    Fiction : :) I may end up with Portablity issues with 32bit cousins. Not an real issue, but just to know the number. :wtf: Thanks, Vythees

    1 Reply Last reply
    0
    • D Dan Neely

      IIRC ebay is running its servers using c++ and ISAPI, not .net.

      -- You have to explain to them [VB coders] what you mean by "typed". their first response is likely to be something like, "Of course my code is typed. Do you think i magically project it onto the screen with the power of my mind?" --- John Simmons / outlaw programmer

      V Offline
      V Offline
      vytheese
      wrote on last edited by
      #13

      I agree, I think then there should be the same constraint exist in .NET class also. Thanks, Vythees

      D 1 Reply Last reply
      0
      • L led mike

        Colin Angus Mackay wrote:

        I think that if you ever reached that limit then you might want to seriously reconsider your design.

        or the switch/case limit or the if/elseif limit or the .... or if none of that makes sense to you try this[^]

        V Offline
        V Offline
        vytheese
        wrote on last edited by
        #14

        Oh God, thats classic link. :) Thanks, Vythees

        1 Reply Last reply
        0
        • L leppie

          Seeing Assembly metatokens takes the following form: 00 000000, where the former is the type, and the latter is the code, I would say the maximum number of methoddef's in an assembly would be limited to 24-bits, iow 16.7 million. Dunno if there is a limitation on a classes though.

          **

          xacc.ide-0.2.0.75 - now with C# 3.5 support and Navigation Bar!

          **

          E Offline
          E Offline
          Ed Poore
          wrote on last edited by
          #15

          There is a limit, I remember someone a while ago (I've got a feeling in this forum) hit a limit on the number of fields in anycase that they could include in a class.  Buggered if I can remember where it was or what it was :sigh:


          My Blog

          L 1 Reply Last reply
          0
          • V vytheese

            A nice research. Thanks, Vythees

            L Offline
            L Offline
            leppie
            wrote on last edited by
            #16

            Not research, I know it from working with the spec :) And those values can be accessed from .NET 2 (nowadays).

            **

            xacc.ide-0.2.0.75 - now with C# 3.5 support and Navigation Bar!

            **

            1 Reply Last reply
            0
            • E Ed Poore

              There is a limit, I remember someone a while ago (I've got a feeling in this forum) hit a limit on the number of fields in anycase that they could include in a class.  Buggered if I can remember where it was or what it was :sigh:


              My Blog

              L Offline
              L Offline
              leppie
              wrote on last edited by
              #17

              Maybe you are thinking about the parameter limit, that is 16383/4.

              **

              xacc.ide-0.2.0.75 - now with C# 3.5 support and Navigation Bar!

              **

              E 1 Reply Last reply
              0
              • L leppie

                Maybe you are thinking about the parameter limit, that is 16383/4.

                **

                xacc.ide-0.2.0.75 - now with C# 3.5 support and Navigation Bar!

                **

                E Offline
                E Offline
                Ed Poore
                wrote on last edited by
                #18

                No, I'm pretty sure that someone managed to hit a limit on the number of fields that could be contained in a class.  I'll do some digging.


                My Blog

                1 Reply Last reply
                0
                • V vytheese

                  Just curiosity ;) , Did anyone have idea of how many methods a single C# class can allow ? I heard, it is compiler dependent If true, what is the maximum no allowed by the standard compiler ? Thanks, Vythees

                  S Offline
                  S Offline
                  Sean Michael Murphy
                  wrote on last edited by
                  #19

                  I let this run for an hour to get to 5000 before I gave up. Someone with more CPU and physical RAM than I have should run it and see where it ends...

                  using System;
                  using System.Collections.Generic;
                  using System.Text;
                  using System.CodeDom.Compiler;
                     
                  namespace MethodCountLimitFinder {
                     class Program {
                        static void Main(string[] args) {
                           Int32 methodCount = 1;
                           Microsoft.CSharp.CSharpCodeProvider cscp = new Microsoft.CSharp.CSharpCodeProvider();
                           ICodeCompiler icc = cscp.CreateCompiler();
                     
                           CompilerParameters cp = new CompilerParameters();
                           cp.GenerateExecutable = false;
                           cp.GenerateInMemory = true;
                     
                           CompilerResults cr = null;
                           string pre = "using System;" + Environment.NewLine +
                                    Environment.NewLine +
                                    "namespace Tester {" + Environment.NewLine +
                                    " class Test {" + Environment.NewLine;
                           string post = " }" + Environment.NewLine +
                                    "}";
                           string inner = string.Empty;
                     
                           while (true) {
                              inner += " public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                       " return 42;" + Environment.NewLine +
                                       " }" + Envi

                  D P 2 Replies Last reply
                  0
                  • S Sean Michael Murphy

                    I let this run for an hour to get to 5000 before I gave up. Someone with more CPU and physical RAM than I have should run it and see where it ends...

                    using System;
                    using System.Collections.Generic;
                    using System.Text;
                    using System.CodeDom.Compiler;
                       
                    namespace MethodCountLimitFinder {
                       class Program {
                          static void Main(string[] args) {
                             Int32 methodCount = 1;
                             Microsoft.CSharp.CSharpCodeProvider cscp = new Microsoft.CSharp.CSharpCodeProvider();
                             ICodeCompiler icc = cscp.CreateCompiler();
                       
                             CompilerParameters cp = new CompilerParameters();
                             cp.GenerateExecutable = false;
                             cp.GenerateInMemory = true;
                       
                             CompilerResults cr = null;
                             string pre = "using System;" + Environment.NewLine +
                                      Environment.NewLine +
                                      "namespace Tester {" + Environment.NewLine +
                                      " class Test {" + Environment.NewLine;
                             string post = " }" + Environment.NewLine +
                                      "}";
                             string inner = string.Empty;
                       
                             while (true) {
                                inner += " public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                         " return 42;" + Environment.NewLine +
                                         " }" + Envi

                    D Offline
                    D Offline
                    DavidNohejl
                    wrote on last edited by
                    #20

                    Sean Michael Murphy wrote:

                    while (true) { inner += " public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine + " return 42;" + Environment.NewLine + " }" + Environment.NewLine; cr = icc.CompileAssemblyFromSource(cp, pre + inner + post); if (cr.Errors.Count > 0) break; methodCount++; if (methodCount % 10 == 0) System.Console.WriteLine(methodCount.ToString()); }

                    Sean Michael Murphy wrote:

                    Someone with more CPU and physical RAM than I have should run it and see where it ends...

                    No wonder, always use StringBuilder for string concatenation in a loop.


                    "Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe

                    M S 2 Replies Last reply
                    0
                    • V vytheese

                      I agree, I think then there should be the same constraint exist in .NET class also. Thanks, Vythees

                      D Offline
                      D Offline
                      Dan Neely
                      wrote on last edited by
                      #21

                      Even assuming there is a constraint, you're talking about 2 totally different languages so why should they be the same?

                      -- You have to explain to them [VB coders] what you mean by "typed". their first response is likely to be something like, "Of course my code is typed. Do you think i magically project it onto the screen with the power of my mind?" --- John Simmons / outlaw programmer

                      1 Reply Last reply
                      0
                      • D DavidNohejl

                        Sean Michael Murphy wrote:

                        while (true) { inner += " public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine + " return 42;" + Environment.NewLine + " }" + Environment.NewLine; cr = icc.CompileAssemblyFromSource(cp, pre + inner + post); if (cr.Errors.Count > 0) break; methodCount++; if (methodCount % 10 == 0) System.Console.WriteLine(methodCount.ToString()); }

                        Sean Michael Murphy wrote:

                        Someone with more CPU and physical RAM than I have should run it and see where it ends...

                        No wonder, always use StringBuilder for string concatenation in a loop.


                        "Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe

                        M Offline
                        M Offline
                        Martin 0
                        wrote on last edited by
                        #22

                        Cannot been said to often! Good answere!

                        P 1 Reply Last reply
                        0
                        • M Martin 0

                          Cannot been said to often! Good answere!

                          P Offline
                          P Offline
                          PIEBALDconsult
                          wrote on last edited by
                          #23

                          Well it can be said too often, but it's appropriate here.

                          1 Reply Last reply
                          0
                          • D DavidNohejl

                            Sean Michael Murphy wrote:

                            while (true) { inner += " public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine + " return 42;" + Environment.NewLine + " }" + Environment.NewLine; cr = icc.CompileAssemblyFromSource(cp, pre + inner + post); if (cr.Errors.Count > 0) break; methodCount++; if (methodCount % 10 == 0) System.Console.WriteLine(methodCount.ToString()); }

                            Sean Michael Murphy wrote:

                            Someone with more CPU and physical RAM than I have should run it and see where it ends...

                            No wonder, always use StringBuilder for string concatenation in a loop.


                            "Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe

                            S Offline
                            S Offline
                            Sean Michael Murphy
                            wrote on last edited by
                            #24

                            dnh wrote:

                            No wonder, always use StringBuilder for string concatenation in a loop.

                            Hmmm. Interesting. When I originally undertook to code this snippet to try to figure an answer to this guys question, optimization was pretty far from my mind. I mean, I cranked the original bit of code out in 15 minutes (or so) and had originally coded it so the methods would be recreated every time. I took another 5 minutes and optimized it so that only 1 method (the new one) would have to be concatenated to the "guts", which was then stuck in between the fixed "header" and "footer" of the class. It ran slowly, but I assumed that most of the overhead was in the actual code compilation (compiling classes of 15000 lines), and not a little bit of string concatenation. So I've re-written it using StringBuilder and timed both versions for 500 iterations. The original code did 500 iterations on my PC in 161.5222 seconds. This version:

                            StringBuilder inner = new StringBuilder();
                             
                            DateTime startTime = DateTime.Now;
                               
                            for (Int32 i = 0; i < 500; i++) {
                               inner.Append(" public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                            " return 42;" + Environment.NewLine +
                                            " }" + Environment.NewLine);
                             
                               StringBuilder code = new StringBuilder(pre);
                               code.Append(inner);
                               code.Append(post);
                               cr = icc.CompileAssemblyFromSource(cp, code.ToString());
                             
                               if (cr.Errors.Count > 0)
                                  break;
                             
                               methodCount++;
                             
                               if (methodCount % 10 == 0)
                                  System.Console.WriteLine(methodCount.ToString());
                            }
                             
                            TimeSpan ts = DateTime.Now - startTime;
                             
                            System.Console.WriteLine(ts.TotalSeconds);

                            did it in 160.111. Much less that 1% slower. Not a string concatenation to be found, except for the line joins. Anything to add? Thanks. Sean

                            D V 2 Replies Last reply
                            0
                            • S Sean Michael Murphy

                              dnh wrote:

                              No wonder, always use StringBuilder for string concatenation in a loop.

                              Hmmm. Interesting. When I originally undertook to code this snippet to try to figure an answer to this guys question, optimization was pretty far from my mind. I mean, I cranked the original bit of code out in 15 minutes (or so) and had originally coded it so the methods would be recreated every time. I took another 5 minutes and optimized it so that only 1 method (the new one) would have to be concatenated to the "guts", which was then stuck in between the fixed "header" and "footer" of the class. It ran slowly, but I assumed that most of the overhead was in the actual code compilation (compiling classes of 15000 lines), and not a little bit of string concatenation. So I've re-written it using StringBuilder and timed both versions for 500 iterations. The original code did 500 iterations on my PC in 161.5222 seconds. This version:

                              StringBuilder inner = new StringBuilder();
                               
                              DateTime startTime = DateTime.Now;
                                 
                              for (Int32 i = 0; i < 500; i++) {
                                 inner.Append(" public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                              " return 42;" + Environment.NewLine +
                                              " }" + Environment.NewLine);
                               
                                 StringBuilder code = new StringBuilder(pre);
                                 code.Append(inner);
                                 code.Append(post);
                                 cr = icc.CompileAssemblyFromSource(cp, code.ToString());
                               
                                 if (cr.Errors.Count > 0)
                                    break;
                               
                                 methodCount++;
                               
                                 if (methodCount % 10 == 0)
                                    System.Console.WriteLine(methodCount.ToString());
                              }
                               
                              TimeSpan ts = DateTime.Now - startTime;
                               
                              System.Console.WriteLine(ts.TotalSeconds);

                              did it in 160.111. Much less that 1% slower. Not a string concatenation to be found, except for the line joins. Anything to add? Thanks. Sean

                              D Offline
                              D Offline
                              DavidNohejl
                              wrote on last edited by
                              #25

                              Sean Michael Murphy wrote:

                              Anything to add?

                              I'd agree that most time takes compilation, but the thing about string concatenation with + is that it's -unlike compilation - completely unnecessary. And I don't think that using StringBuilder for concatenating strings in big loops is optimalization - I think it's something you should do without thinking. btw you're still allocating 7 or so strings in

                              inner.Append("      public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                              "         return 42;" + Environment.NewLine +
                                              "      }" + Environment.NewLine);
                              

                              every cycle, that's 3500 unnecessary allocations :) Anyway, cool way to check for number of methods limit indeed.


                              "Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe

                              P 1 Reply Last reply
                              0
                              • S Sean Michael Murphy

                                dnh wrote:

                                No wonder, always use StringBuilder for string concatenation in a loop.

                                Hmmm. Interesting. When I originally undertook to code this snippet to try to figure an answer to this guys question, optimization was pretty far from my mind. I mean, I cranked the original bit of code out in 15 minutes (or so) and had originally coded it so the methods would be recreated every time. I took another 5 minutes and optimized it so that only 1 method (the new one) would have to be concatenated to the "guts", which was then stuck in between the fixed "header" and "footer" of the class. It ran slowly, but I assumed that most of the overhead was in the actual code compilation (compiling classes of 15000 lines), and not a little bit of string concatenation. So I've re-written it using StringBuilder and timed both versions for 500 iterations. The original code did 500 iterations on my PC in 161.5222 seconds. This version:

                                StringBuilder inner = new StringBuilder();
                                 
                                DateTime startTime = DateTime.Now;
                                   
                                for (Int32 i = 0; i < 500; i++) {
                                   inner.Append(" public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                                " return 42;" + Environment.NewLine +
                                                " }" + Environment.NewLine);
                                 
                                   StringBuilder code = new StringBuilder(pre);
                                   code.Append(inner);
                                   code.Append(post);
                                   cr = icc.CompileAssemblyFromSource(cp, code.ToString());
                                 
                                   if (cr.Errors.Count > 0)
                                      break;
                                 
                                   methodCount++;
                                 
                                   if (methodCount % 10 == 0)
                                      System.Console.WriteLine(methodCount.ToString());
                                }
                                 
                                TimeSpan ts = DateTime.Now - startTime;
                                 
                                System.Console.WriteLine(ts.TotalSeconds);

                                did it in 160.111. Much less that 1% slower. Not a string concatenation to be found, except for the line joins. Anything to add? Thanks. Sean

                                V Offline
                                V Offline
                                vytheese
                                wrote on last edited by
                                #26

                                Hi, while( true) { do { inner.Append(" public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine + " return 42;" + Environment.NewLine + " }" + Environment.NewLine); methodCount++; } while ((methodCount % 1000) != 0); cr = icc.CompileAssemblyFromSource(cp, pre + inner.ToString() + post); if (cr.Errors.Count > 0) break; System.Console.WriteLine(methodCount.ToString() + " Compiled successfuly ==> so not succed"); } System.Console.WriteLine(methodCount + " may be approximately to -1000 of method count"); I modified slightly your code as the above and executed, Its going on till 100000 ( above 1 lakh ), My machine got down, So I planned to run today night. Now I feeling, I shouldn't ask this question first of all ;) Thanks, Vythees -- modified at 5:24 Tuesday 3rd July, 2007 Thanks, Vythees

                                S 1 Reply Last reply
                                0
                                • V vytheese

                                  Hi, while( true) { do { inner.Append(" public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine + " return 42;" + Environment.NewLine + " }" + Environment.NewLine); methodCount++; } while ((methodCount % 1000) != 0); cr = icc.CompileAssemblyFromSource(cp, pre + inner.ToString() + post); if (cr.Errors.Count > 0) break; System.Console.WriteLine(methodCount.ToString() + " Compiled successfuly ==> so not succed"); } System.Console.WriteLine(methodCount + " may be approximately to -1000 of method count"); I modified slightly your code as the above and executed, Its going on till 100000 ( above 1 lakh ), My machine got down, So I planned to run today night. Now I feeling, I shouldn't ask this question first of all ;) Thanks, Vythees -- modified at 5:24 Tuesday 3rd July, 2007 Thanks, Vythees

                                  S Offline
                                  S Offline
                                  Sean Michael Murphy
                                  wrote on last edited by
                                  #27

                                  vytheeswaran wrote:

                                  Now I feeling, I shouldn't ask this question first of all

                                  Don't be crazy. I enjoyed thinking about it. Sean

                                  1 Reply Last reply
                                  0
                                  • D DavidNohejl

                                    Sean Michael Murphy wrote:

                                    Anything to add?

                                    I'd agree that most time takes compilation, but the thing about string concatenation with + is that it's -unlike compilation - completely unnecessary. And I don't think that using StringBuilder for concatenating strings in big loops is optimalization - I think it's something you should do without thinking. btw you're still allocating 7 or so strings in

                                    inner.Append("      public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                                    "         return 42;" + Environment.NewLine +
                                                    "      }" + Environment.NewLine);
                                    

                                    every cycle, that's 3500 unnecessary allocations :) Anyway, cool way to check for number of methods limit indeed.


                                    "Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe

                                    P Offline
                                    P Offline
                                    PIEBALDconsult
                                    wrote on last edited by
                                    #28

                                    dnh wrote:

                                    I think it's something you should do without thinking.

                                    Never do anything without thinking.

                                    D 1 Reply Last reply
                                    0
                                    • S Sean Michael Murphy

                                      I let this run for an hour to get to 5000 before I gave up. Someone with more CPU and physical RAM than I have should run it and see where it ends...

                                      using System;
                                      using System.Collections.Generic;
                                      using System.Text;
                                      using System.CodeDom.Compiler;
                                         
                                      namespace MethodCountLimitFinder {
                                         class Program {
                                            static void Main(string[] args) {
                                               Int32 methodCount = 1;
                                               Microsoft.CSharp.CSharpCodeProvider cscp = new Microsoft.CSharp.CSharpCodeProvider();
                                               ICodeCompiler icc = cscp.CreateCompiler();
                                         
                                               CompilerParameters cp = new CompilerParameters();
                                               cp.GenerateExecutable = false;
                                               cp.GenerateInMemory = true;
                                         
                                               CompilerResults cr = null;
                                               string pre = "using System;" + Environment.NewLine +
                                                        Environment.NewLine +
                                                        "namespace Tester {" + Environment.NewLine +
                                                        " class Test {" + Environment.NewLine;
                                               string post = " }" + Environment.NewLine +
                                                        "}";
                                               string inner = string.Empty;
                                         
                                               while (true) {
                                                  inner += " public Int32 Method" + methodCount.ToString() + "() {" + Environment.NewLine +
                                                           " return 42;" + Environment.NewLine +
                                                           " }" + Envi

                                      P Offline
                                      P Offline
                                      PIEBALDconsult
                                      wrote on last edited by
                                      #29

                                      A) I don't think there's any need for including the NewLines. B) Why step by one? Why not double methodCount after each successful compile?

                                      P S 2 Replies Last reply
                                      0
                                      • P PIEBALDconsult

                                        dnh wrote:

                                        I think it's something you should do without thinking.

                                        Never do anything without thinking.

                                        D Offline
                                        D Offline
                                        DavidNohejl
                                        wrote on last edited by
                                        #30

                                        I'll repeat: *Always* use string builder for concatenating strings in big loops. And I stay behind my claim. That being said, if that loop had about 5 iterations in 99,99% and much more in 0,01%, then you have to thinkg about it - IIRC StringBuilder would be slower. But if that task is something that must end in some very limited time or under very limited memory, you can't afford that 0,01% and even if performing worse in average, StringBuilder would be better choice.


                                        "Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus "Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe

                                        1 Reply Last reply
                                        0
                                        • P PIEBALDconsult

                                          A) I don't think there's any need for including the NewLines. B) Why step by one? Why not double methodCount after each successful compile?

                                          P Offline
                                          P Offline
                                          PIEBALDconsult
                                          wrote on last edited by
                                          #31

                                          In reference to A: error CS1034: Compiler limit exceeded: Line cannot exceed 16777214 characters The following succeeds at 1000000, and then I killed it while it tried 2000000.

                                          namespace MethodCountLimitFinder
                                          {
                                          class Program
                                          {
                                          [System.STAThreadAttribute]
                                          static void Main ( string [] args )
                                          {
                                          Microsoft.CSharp.CSharpCodeProvider provider =
                                          new Microsoft.CSharp.CSharpCodeProvider() ;

                                                  System.CodeDom.Compiler.CompilerParameters cp = 
                                                      new System.CodeDom.Compiler.CompilerParameters() ;
                                                  cp.GenerateExecutable = false ;
                                                  cp.GenerateInMemory = true ;
                                          
                                                  System.CodeDom.Compiler.CompilerResults cr = null ;
                                          
                                                  System.Text.StringBuilder inner = 
                                                      new System.Text.StringBuilder ( "namespace Tester { class Test {" ) ;
                                          
                                                  int methodCount = 1000000 ;
                                          
                                                  while ( true )
                                                  {
                                                      System.Console.WriteLine ( methodCount ) ;
                                                      
                                                      for ( int i = methodCount ; i > 0 ; i-- )
                                                      {
                                                          inner.AppendFormat ( "void M{0}(){{}}\\n" , methodCount++ ) ;
                                                      }
                                                      
                                                      inner.Append ( "}}" ) ;
                                                      
                                                      cr = provider.CompileAssemblyFromSource ( cp , inner.ToString() ) ;
                                                      
                                                      if ( cr.Errors.Count > 0 )
                                                      {
                                                          break ;
                                                      }
                                                      
                                                      inner.Remove ( inner.Length - 2 , 2 ) ;
                                                  }
                                          
                                                  foreach (  System.CodeDom.Compiler.CompilerError ce in cr.Errors )
                                                  {
                                                      System.Console.WriteLine ( ce.ToString() ) ;
                                                  }
                                              }
                                          }
                                          

                                          }

                                          -- modified at 21:11 Tuesday 3rd July, 2007 2000000 and counting...

                                          C:\>maxi
                                          1000000
                                          2000000
                                          4000000
                                          error CS0001: Internal compiler error (0x80004005)
                                          error CS0001: Internal compiler error (0xc0000017)
                                          error CS0583: Internal Compiler Error (0xc0000005 at address 5A16E208): likely culprit is 'PARSE'.
                                          error CS0586: Internal Compiler Error: stage 'PARSE'
                                          error CS0587: Internal Compiler Error: stage 'PARSE'
                                          error CS0587: Internal Compiler Error: stage 'BEGIN'

                                          C:\>

                                          -- modified at 1:56 Wednesday 4th July, 2007 After 3000000 I started hitting resource limits and timeouts. So now I simply have a program write a file with the code and compile it at the command lin

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups