I can't figure out how to make this work:
object x = new Int32[7];
Type t = x.GetType();
// now forget about x, and just use t from here.
// attempt1
object y1 = Activator.CreateInstance(t); // fails with exception
// attempt2
object y2 = Array.CreateInstance(t, 7); // creates an array of type Int32[][] ! wrong
What's the secret sauce? I can make the second one work if I can get the type of the elements of the array, but I haven't figured that one out either.