从 .Net Core 2 升级到 .Net 6 后出现编译器错误
Compiler Error after upgrading from .Net Core 2 to .Net 6
我从 .Net Core 2 升级到 .Net 6。它导致的错误之一是:
Error CS1106 Extension method must be defined in a non-generic static
class
它发生在 public class BookController
线上。
所以我在 Microsoft 网站上做了一些研究,然后从 LateFee
方法中删除了 static
关键字。
但这并不能解决错误。
还有什么需要我做的吗?
这是我的 class:
public class BookController
: LibraryController<BookClub, Books>
{
public BookController(BookConfig<BookClub> ctx)
: base(ctx)
{
}
private static bool LateFee(BookClub original, Books b)
{
return original.Date?.Id != b.CheckoutDate.TrimToNull();
}
}
这是父级 class:
public class LibraryController()
[HttpPost("byLocation/{id}")]
public IActionResult PostBookRequest(this Int32 id)
{
using (var tran = Session.BeginTransaction()) {
foreach (var book in LibraryService.CreateHold(id)) {
Session.Save(book);
}
tran.Commit();
return NoContent();
}
}
谢谢!
public IActionResult PostBookRequest(this Int32 id)
从该行中删除 this
,这是 .Net Core 2 中的语法错误,在 .Net6 中仍然是语法错误。
我从 .Net Core 2 升级到 .Net 6。它导致的错误之一是:
Error CS1106 Extension method must be defined in a non-generic static class
它发生在 public class BookController
线上。
所以我在 Microsoft 网站上做了一些研究,然后从 LateFee
方法中删除了 static
关键字。
但这并不能解决错误。
还有什么需要我做的吗?
这是我的 class:
public class BookController
: LibraryController<BookClub, Books>
{
public BookController(BookConfig<BookClub> ctx)
: base(ctx)
{
}
private static bool LateFee(BookClub original, Books b)
{
return original.Date?.Id != b.CheckoutDate.TrimToNull();
}
}
这是父级 class:
public class LibraryController()
[HttpPost("byLocation/{id}")]
public IActionResult PostBookRequest(this Int32 id)
{
using (var tran = Session.BeginTransaction()) {
foreach (var book in LibraryService.CreateHold(id)) {
Session.Save(book);
}
tran.Commit();
return NoContent();
}
}
谢谢!
public IActionResult PostBookRequest(this Int32 id)
从该行中删除 this
,这是 .Net Core 2 中的语法错误,在 .Net6 中仍然是语法错误。