openapi-generator-cli生成AspNetCore代码:只读属性优化方案问询
ASP.NET Core OpenAPI生成器:优化只读属性的代码生成逻辑
我在用npx @openapitools/openapi-generator-cli -g aspnetcore ...命令生成ASP.NET Core代码时,发现一个问题:OpenAPI YAML中标记为只读的属性,生成的代码里还是带公共setter的自动属性:
public string Name { get; set; }
这完全没体现出属性的只读特性。
建议调整生成逻辑:当YAML中标记属性为只读时,生成带私有setter的属性,同时提供对应的公共Set方法,示例如下:
public string Name { get; private set; } // 额外生成的公共赋值方法 public void SetName(string value) { Name = value; }
这样既保证外部调用方无法直接修改属性值,维持只读的契约,又能在内部逻辑或授权场景下通过Set方法完成赋值,兼顾封装性和灵活性。
内容的提问来源于stack exchange,提问作者NieCola
相关产品推荐
相关产品推荐

