An interesting question, but I donβt know why you ever get in the limit in reality, so the answer may not be so useful, because it is a large number.
I found this thread where someone wrote the following test, to actually create a class with an increase in the number of functions, to see where the breakpoint was:
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() ) ; } } } }
According to the results, it looks like a resource-dependent, not a specifier, which is most likely not defined unless you bind it to a 32/64-bit index link or something that I do not consider realistic, since you will end up in resource constraints, probably anyway.
Test exceeded 200k + before crash due to lack of resources.
Again, interesting but not all that is useful for IMO information.
Kelsey
source share