public GeneratedType AddType(string typeName, Type baseType) { // TODO -- assert that it's been generated already? var generatedType = new GeneratedType(Generation, typeName); if (baseType.IsInterface) { generatedType.Implements(baseType); } else { generatedType.InheritsFrom(baseType); } GeneratedTypes.Add(generatedType); return(generatedType); }
public GeneratedType AddType(string typeName, Type baseType) { if (Assembly != null) { throw new InvalidOperationException("This generated assembly has already been compiled"); } var generatedType = new GeneratedType(this, typeName); if (baseType.IsInterface) { generatedType.Implements(baseType); } else { generatedType.InheritsFrom(baseType); } generatedType.ParentAssembly = this; _generatedTypes.Add(generatedType); return(generatedType); }
// TODO -- another version that takes in variables maybe? public ICodeFrame ReturnNewGeneratedTypeObject(GeneratedType typeBeingReturned, params string[] values) { return(Code( $"return new {ParentMethod.ParentType.ParentAssembly.Namespace}.{typeBeingReturned.TypeName}({values.Join(", ")});")); }