Tôi đang chuyển mã sử dụng rộng rãi DynamicMethod
để cho phép biên dịch trước, để có hiệu suất khởi động nguội tốt hơn. Tôi nhận thấy rằng DynamicMethod
s có thể được JITted và thực hiện với kiểm tra khả năng hiển thị bỏ qua, cho phép họ truy cập các kiểu lồng nhau riêng, nhưng các assembly bình thường không thể (hoặc không thể? Tôi không thấy bất kỳ tùy chọn bộ tải rõ ràng nào). Lý do đằng sau quyết định thiết kế này là gì?Tại sao bỏ qua kiểm tra hiển thị chỉ được phép cho các phương pháp động?
6
A
Trả lời
2
Tôi cần phải vẫy tay một chút để trả lời câu hỏi này, CAS là mãi mãi phức tạp. Đối số skipVisibility có liên quan đến các ứng dụng máy chủ đáng tin cậy tạo mã thực thi trong hộp cát. Trong trường hợp này, nó không thích hợp để thực hiện kiểm tra khi phương thức được tạo ra vì môi trường thực thi là sai. Nó cần phải xảy ra khi phương pháp thực hiện bên trong hộp cát. Trường hợp nó được kiểm tra CAS bình thường được thực hiện bởi sandbox.
Đặt đối số thành true trong thực tế thêm nhu cầu cấp quyền cho ReflectionPermissionFlag.MemberAccess, bắt buộc phải có ảnh chụp để tạo phương thức được tạo.
Topsy-turvy. Có một số thông tin cơ bản trong phần this MSDN article, "Thêm RestrictedMemberAccess vào Sandboxed Domains".
Các vấn đề liên quan
- 1. Tại sao hiển thị div: lề bỏ qua hàng bảng?
- 2. Tại sao FindBugs bỏ qua kiểm tra của tôi cho null?
- 3. Maven tự động bỏ qua các bài kiểm tra
- 4. Tùy chọn khởi động Windows7 để cho phép các trình điều khiển chưa được bỏ qua bị bỏ qua
- 5. kiểm tra CheckStyle không được bỏ qua
- 6. Bỏ qua ngữ pháp Microsoft Word 2007 kiểm tra mã
- 7. Bỏ qua AspectJ trong junit kiểm tra
- 8. Scrapy SgmlLinkExtractor bị bỏ qua là bỏ qua các liên kết được phép
- 9. Tại sao JUnit chạy các trường hợp kiểm tra cho Lý thuyết chỉ cho đến khi thất bại đầu tiên?
- 10. Tại sao tất cả chúng ta kiểm tra xem liệu (tự) trong phương pháp init?
- 11. Tại sao vwd.webinfo luôn được tự động kiểm tra từ kiểm soát nguồn?
- 12. Kiểm tra phương pháp S4
- 13. IntelliJ IDEA chuột qua phương pháp hiển thị Java Doc
- 14. đối tượng động không hiển thị phương pháp của nó
- 15. C# treeview bỏ qua nhấp đúp chỉ tại hộp kiểm
- 16. Tại sao C++ cho phép các thành viên riêng được sửa đổi bằng cách sử dụng phương pháp này?
- 17. Các lớp kiểm tra JUnit không hiển thị trong JMeter
- 18. Tại sao ParameterizedThreadStart chỉ cho phép tham số đối tượng?
- 19. Cách kiểm tra các trường riêng được sửa đổi thông qua các phương thức công cộng
- 20. Hiển thị xương sống/ẩn hiển thị các phương pháp hay nhất
- 21. Kiểm tra đường ray: khẳng định hành động hiển thị
- 22. tại sao xunit không cho phép thử nghiệm một phương thức với các tham số?
- 23. phương pháp kế thừa thông qua các biểu thức chỉ thị
- 24. JUnit bỏ qua phương pháp @Test từ lớp cơ sở
- 25. Tại sao C# cho phép điều này? (Null kiểm tra để int)
- 26. Tại sao CDT Eclipse bỏ qua các điểm ngắt?
- 27. Định cấu hình kiểu kiểm tra cho chuỗi phương pháp?
- 28. Flask - POST Error 405 Phương pháp không được phép
- 29. Tại sao THashedStringList bỏ qua các bản sao?
- 30. Tôi có thể kiểm tra các phương pháp sao băng của mình bằng cách nào?
-unity, vì điều này không liên quan đến Microsoft Unity. Bạn có thể đọc bài đăng trên blog này, http://davedewinter.com/2010/11/21/tip-22-dynamicmethods-in-partial-trust/ Nó yêu cầu một số quyền nhất định để làm như vậy. Do đó, nếu bạn muốn hạn chế những nỗ lực đó bạn có thể. –