public CodeProperty CreateProperty(string name, Type returnType, MethodAttributes methodAttributes, params Type [] parameterTypes) { CodeProperty prop = new CodeProperty(this, GetPropertyName(name), PropertyAttributes.None, methodAttributes, returnType, parameterTypes); properties.Add(prop); return(prop); }
public void PrintCode(CodeWriter cw) { for (int n = 0; n < customAttributes.Count; n++) { CodeCustomAttribute cca = customAttributes [n] as CodeCustomAttribute; if (n > 0) { cw.WriteLine(""); } cca.PrintCode(cw); } /* if ((typeBuilder.Attributes & TypeAttributes.Abstract) != 0) cw.Write ("abstract "); * if ((typeBuilder.Attributes & TypeAttributes.NestedAssembly) != 0) cw.Write ("internal "); * if ((typeBuilder.Attributes & TypeAttributes.NestedPrivate) != 0) cw.Write ("private "); */ if ((typeBuilder.Attributes & TypeAttributes.Public) != 0) { cw.Write("public "); } cw.Write("class ").Write(typeBuilder.Name); bool dots = false; if (baseType != null && baseType != typeof(object)) { cw.Write(" : " + baseType); dots = true; } if (interfaces != null && interfaces.Length > 0) { if (!dots) { cw.Write(" : "); } else { cw.Write(", "); } for (int n = 0; n < interfaces.Length; n++) { if (n > 0) { cw.Write(", "); } cw.Write(interfaces[n].ToString()); } } cw.EndLine().WriteLineInd("{"); foreach (FieldInfo f in fields) { cw.BeginLine(); ArrayList atts = (ArrayList)fieldAttributes [f]; foreach (CodeCustomAttribute a in atts) { a.PrintCode(cw); } if ((f.Attributes & FieldAttributes.Static) != 0) { cw.Write("static "); } cw.Write(f.FieldType.Name + " "); cw.Write(f.Name + ";"); cw.EndLine(); cw.WriteLine(""); } for (int n = 0; n < properties.Count; n++) { CodeProperty prop = properties [n] as CodeProperty; if (n > 0) { cw.WriteLine(""); } prop.PrintCode(cw); } for (int n = 0; n < methods.Count; n++) { CodeMethod met = methods[n] as CodeMethod; if (n > 0) { cw.WriteLine(""); } met.PrintCode(cw); } cw.WriteLineUnind("}"); }
public CodeProperty CreateProperty (string name, Type returnType, MethodAttributes methodAttributes, params Type [] parameterTypes) { CodeProperty prop = new CodeProperty (this, GetPropertyName (name), PropertyAttributes.None, methodAttributes, returnType, parameterTypes); properties.Add (prop); return prop; }