bool ReadClasses() { int classCount = reader.ReadInt32(); int externalTypeCount = reader.ReadInt32(); types = new IReturnType[classCount + externalTypeCount]; DefaultClass[] classes = new DefaultClass[classCount]; for (int i = 0; i < classes.Length; i++) { DefaultClass c = new DefaultClass(pc.AssemblyCompilationUnit, reader.ReadString()); classes[i] = c; types[i] = c.DefaultReturnType; } for (int i = classCount; i < types.Length; i++) { string name = reader.ReadString(); types[i] = new GetClassReturnType(pc, name, reader.ReadByte()); } stringArray = new string[reader.ReadInt32()]; for (int i = 0; i < stringArray.Length; i++) { stringArray[i] = reader.ReadString(); } ReadAttributes(pc.AssemblyCompilationUnit); for (int i = 0; i < classes.Length; i++) { ReadClass(classes[i]); pc.AddClassToNamespaceList(classes[i]); if (reader.ReadByte() != 64) { return(false); } } return(true); }
public IReturnType ToDefaultDelegate() { IReturnType type = new GetClassReturnType(cu.ProjectContent, "System.Func", 0); List <IReturnType> parameters = new List <IReturnType>(); if (this.HasParameterList) { parameters = MethodParameters.Select(p => p.ReturnType ?? new GetClassReturnType(cu.ProjectContent, "System.Object", 0)).ToList(); } if (this.MethodReturnType != null && this.MethodReturnType.FullyQualifiedName == "System.Void") { type = new GetClassReturnType(cu.ProjectContent, "System.Action", 0); } else { var rt = this.MethodReturnType; if (rt == null) { rt = new GetClassReturnType(cu.ProjectContent, "System.Object", 0); } parameters.Add(rt); } return(new ConstructedReturnType(type, parameters)); }