public class CodeService
{
public string Build(BuildInputDto input)
{
var assembly = Assembly.GetExecutingAssembly();
var resourceName = assembly.GetManifestResourceNames()
.FirstOrDefault(a => a.Contains("ModelTemplate.txt"));
var file = assembly.GetManifestResourceStream(resourceName);
var modelTemplate = new StreamReader(file).ReadToEnd();
var attributes = new StringBuilder();
foreach (var field in input.FieldInputDto)
{
attributes.Append("\r\n /// <summary>");
attributes.Append($"\r\n /// " + field.DisplayName + "");
attributes.Append("\r\n /// </summary>");
attributes.Append($"\r\n public {field.DataType} {field.Name} {{ get; set; }}");
attributes.Append("\r\n ");
}
var modelClass = modelTemplate.Replace("{Namespace}", input.Namespace)
.Replace("{DisplayName}", input.DisplayName)
.Replace("{EntityName}", input.EntityName)
.Replace("{AttributeList}", attributes.ToString());
var parentPath = new DirectoryInfo(Environment.CurrentDirectory).FullName;
using (FileStream stream = File.Open($"{parentPath}/Models/{input.EntityName}.cs"
, FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] by = Encoding.Default.GetBytes(modelClass);
stream.Write(by, 0, by.Length);
}
return "OK";
}
}
其他的生成代码方式以此类推
模板 ModelTemplate.txt
using System;
namespace {Namespace}.Models
{
/// <summary>
/// {DisplayName}
/// </summary>
public class {EntityName}
{
{AttributeList}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)