如何解决为什么.NET Core 5 中的 Program.cs 中没有任何类?
我正在尝试使用 .NET 5 来更新我的信息。所以我开始审查 eShopOnContainers-ServicesAndWebApps 项目 here。
我读过它的旧版本(2.2 和 3.1),这是一个丰富的样本,有很多精彩的点。但是在 .NET 5 中的 here 乍一看,在 Program.cs
中,我看到很多方法和属性没有任何我无法理解并让我感到困惑的类。 cs文件中怎么能有没有类的方法?
解决方法
这是 C# 9 的一个特性:top-level statements
顶级语句从许多应用程序中删除了不必要的仪式。
您的应用程序中只有一个文件可以使用顶级语句。如果编译器在多个源文件中发现顶级语句,那就是错误。如果将顶级语句与声明的程序入口点方法(通常是 Main 方法)结合使用,也会导致错误。从某种意义上说,您可以认为一个文件包含通常位于 Program 类的 Main 方法中的语句。
所以你现在可以编写一个只包含这行代码的程序:
@Service
class MyService {
private MyService self;
public MyService(@Lazy MyService self) {
this.self = self;
}
@Transactional
void createFile() {
try {
self.createFileWorker()
} catch (Exception ex) {
this.repository.save(e.getMessage());
}
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
void createFileWorker() {
//code to save values
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。