gpt4 book ai didi

c# - 这些部分中的哪一个进入模型与 Controller ?

转载 作者:行者123 更新时间:2023-11-30 16:27:47 25 4
gpt4 key购买 nike

我的应用程序的一个步骤需要执行 5 个任务。

  1. 接收 CSV 文件作为用户上传的一部分。
  2. 将 CSV 中的每一行解析为规范表示。
  3. 创建与该表示相关的 ORM POCO。
  4. 将每个项目保存到数据库中。
  5. 向每个 POCO 中定义的电子邮件地址发送电子邮件。

我已经有一个存储数据库 ORM 东西的存储库,我至少知道 Controller 可能不应该自己新建一个 SmtpClient,但是有多少“胶水”进入了 Controller ?是否在代码异味下暴露了​​比我的代码片段更多的细节?

public ActionResult Index(HttpPostedFileBase file) {

var result = model.HandleFileUpload (file);

if (result.Success)
{
return SuccessAction("Success");
} else {
return FailureAction("Failure");
}

}

如果这一切都属于模型,如果我只是将较低级别的东西“粘合”在一起,那么我正在做的工作类型叫什么?

最佳答案

我觉得你描述的瘦 Controller 很不错。它易于测试,并且通过在您的模型中创建一组松散耦合的服务类,使您可以轻松地遵守单一职责原则,每个服务类处理流程的不同步骤。如果需要,这还允许您在 MVC 应用程序范围之外使用代码。

因此,我设想您有一个 FileHandler 类来实现您的 HandleFileUpload 方法。这将定义流程的步骤,可能调用 FileParserRepositoryEmailSender 类,每个类都可以通过接口(interface)使用并依赖注入(inject)到您的 FileHandler 中。

您从事的工作类型是什么?开发您可以引以为豪的可维护软件 :-)

关于c# - 这些部分中的哪一个进入模型与 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com