Các thể hiện của lớp tĩnh có độc nhất cho một...
Các thể hiện của lớp tĩnh có độc nhất cho một...
Trong ASP.NET, các thể hiện của lớp tĩnh không độc nhất cho mỗi yêu cầu mà chúng được chia sẻ trên toàn bộ ứng dụng trên máy chủ. Điều này có nghĩa là khi bạn tạo một biến tĩnh, nó sẽ tồn tại và có thể truy cập được bởi tất cả các yêu cầu và người dùng trên cùng một máy chủ. Điều này có thể dẫn đến việc chia sẻ dữ liệu giữa các yêu cầu và người dùng, điều này có thể không mong muốn trong một số trường hợp. Để giải quyết vấn đề này, bạn có thể sử dụng các kỹ thuật khác như sử dụng HttpContext.Current.Items
để lưu trữ dữ liệu cụ thể cho mỗi yêu cầu hoặc sử dụng các phạm vi khác như scoped hoặc transient trong dependency injection để đảm bảo rằng các thể hiện của lớp không được chia sẻ giữa các yêu cầu[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20].
Citations:
[1] https://stackoverflow.com/questions/194999/are-static-class-instances-unique-to-a-request-or-a-server-in-asp-net
[2] https://www.reddit.com/r/dotnet/comments/1498lue/how_singleton_lifetime_works_in_aspnet/
[3] https://autofac.readthedocs.io/en/latest/faq/per-request-scope.html
[4] https://www.infoworld.com/article/3601752/singleton-vs-static-classes-in-csharp.html
[5] https://www.c-sharpcorner.com/article/net-core-depedency-inject-with-real-use-case/
[6] https://www.linkedin.com/pulse/introduction-de...
expert
Gợi ý câu hỏi phỏng vấn
Cơ chế Logging trong ASP.NET Core
Chưa có bình luận nào