private string GetTypeDescriptorName(TypeDescriptor td) { Contract.Requires(td != null); // Type database uses unconstrained types if (td.Rank > 0 && !td.IsUnconstrained) td = td.MakeUnconstrainedType(); TypeInfo ti; if (LookupType(td.CILType, out ti)) { return ti.Name; } string name; if (td.CILType.IsArray) name = "array_" + td.CILType.GetElementType().Name; else name = td.CILType.Name; return MakeIDName(name, td, true); }