ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU NGÔN NGỮ C# VÀ VIẾT MỘT ỨNG DỤNG MINH HỌA PHẦN 8
Số trang: 21
Loại file: pdf
Dung lượng: 368.48 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Assemblies và VersioningGvhd: Nguyễn Tấn Trần Minh Khang17.8.3 Tên mạnhMột tên mạnh là một chuỗi các ký tự hexa mang thuộc tính là duy nhất trong toàn cầu (globally unique). Ngoài ra chuỗi đó còn được mã hóa bằng thuật toán khóa công khai 1 để bảo đảm rằng assembly không bị thay đổi vô tình hay cố ý.
Nội dung trích xuất từ tài liệu:
ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU NGÔN NGỮ C# VÀ VIẾT MỘT ỨNG DỤNG MINH HỌA PHẦN 8Assemblies và Versioning Gvhd: Nguyễn Tấn Trần Minh Khang17.8.3 Tên mạnhMột tên mạnh là một chuỗi các ký tự hexa mang thuộc tính là duy nhất trong toàncầu (globally unique). Ngoài ra chuỗi đó còn được mã hóa bằng thuật toán khóacông khai 1 để bảo đảm rằng assembly không bị thay đổi vô tình hay cố ý.Để tạo ra tên mạnh, một cặp khóa công khai-bí mật được tạo ra cho assembly. Mộtmã băm (hash code) được tạo ra từ tên, nội dung của các tập tin bên trong assemblyvà chuỗi biểu diễn khóa công khai. Sau đó mã băm này được mã hóa bằng khóa bímật, kết quả mã hóa được ghi vào manifest. Quá trình trên được gọi là ký xác nhậnvào assembly (signing the assembly).Khi assembly được CLR nạp vào bộ nhớ, CLR sẽ dùng khóa công khai trongmanifest giải mã mã băm để xác định xem assembly có bị thay đổi không.17.8.4 Global Assembly Cache (GAC)Sau khi đã tạo tên mạnh và ghi vào assembly, việc còn lại để thực hiện chia sẻassembly là đặt assembly đó vào thư mục GAC. Đó là một thư mục đặc biệt dùngđể chứa assembly chia sẻ. Trên Windows, đó là thư mục WinNTassembly. 1 Mã hóa khóa công khai – bí mật: đó là một thuật toán mã hóa đặc biệt, đầu tiên dùng mộtthuật toán riêng tạo ra 2 khóa, một khóa phổ biến rộng rãi nên gọi là khóa công khai, khóa còn lạido chủ nhân của nó cất nơi an toàn nên gọi là bí mật. Sau đó dùng thuật toán mã hóa để mã hóa dữliệu. Một khi dữ liệu bị mã hóa bằng một khóa thì dữ liệu đó chỉ có thể được giải mã bằng khóa kiavà ngược lại. 199Attributes và Reflection Gvhd: Nguyễn Tấn Trần Minh KhangChương 18 Attributes và ReflectionXin được nhắc lại rằng một ứng dụng .NET bao gồm mã chương trình, dữ liệu,metadata. Metadata chính là thông tin về dữ liệu mà ứng dụng sử dụng như kiểu dữliệu, mã thực thi, assembly,…Attributes là cơ chế để tạo ra metadata. Ví dụ như chỉ thị cho trình biên dịch, nhữngdữ liệu khác liên quan đến dữ liệu, phương thức, lớp, …Reflection là quá trình một ứng dụng đọc lại metadata của chính nó để có cách thểhiện, ứng xử thích hợp cho từng người dùng.18.1 AttributesMột attribute là một đối tượng, trong đối tượng đó chứa một mẩu dữ liệu, mà lậptrình viên muốn đính kèm với một phần tử (element) nào đó trong ứng dụng. Phầntử (element) mà lập trình viên muốn đính kèm attribute gọi là mục tiêu (target) củaattribute. Ví dụ attribute:[NoIDispatch]được đính kèm với một lớp hay một giao diện để nói rằng lớp đích (target class) nênđược thừa kế từ giao diện IUnknown chứ không phải thừa kế từ IDispatch.18.2 Attribute mặc định (intrinsic attributes)Có 2 loại attribute: • Attribute mặc định: là attribute được CLR cung cấp sẵn. • Attribute do lập trình viên định nghĩa (custom attribute)18.2.1 Đích của AttributeMỗi attribute chỉ ảng hưởng đến một đích (target) mà nó khai báo. Đích có thể làlớp, giao diện, phương thức … Bảng sau liệt kê tất cả các đíchBảng 18-1 Các đích của attribute Loại Ý nghĩa All Áp dụng cho tất cà các loại bên dưới Assembly Áp dụng cho chính assembly Class Áp dụng cho một thể hiện của lớp ClassMembers Áp dụng cho các loại từ sau hàng này trở đi 200Attributes và Reflection Gvhd: Nguyễn Tấn Trần Minh Khang Constructor Áp dụng với hàm dựng Delegate Áp dụng cho delegate Enum Áp dụng cho kiểu liệt kê Event Áp dụng cho sự kiện Field Áp dụng cho biến thành viên (tĩnh lẫn không tĩnh) Interface Áp dụng cho giao diện Method Áp dụng cho phương thức Module Áp dụng cho module Parameter Áp dụng cho tham số Property Áp dụng cho property ReturnValue Áp dụng cho trị trả về Struct Áp dụng cho cấu trúc18.2.2 Áp dụng AttributeLập trình viên áp dụng attribute lên mục tiêu bằng cách đặt attribute trong ngoặcvuông [] liền trước mục tiêu. Ví dụ attribute “Assembly” được áp dụng: [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile(“keyfile.snk”)]Cách sau cũng tương đương với cách trên: [assembly: AssemblyDelaySign(false), assembly: AssemblyKeyFile(“keyfile.snk”)]Attribute thường dùng trong lập trình C# là “Serializable” [serializable] class MySerClassAttribute trên báo cho compiler biết rằng lớp MySerClass cần được bảo đảm trongviệc ghi nội dung, trạng thát xuống dĩa từ hay truyền qua mạng.18.3 Attribute do lập trình viên tạo raLập trình viên hoàn toàn tự do trong việc tạo ra các attribute riêng và đem sử dụngchúng vào nơi nào cảm thấy thích hợp.18.3.1 Khai báo Attribute tự tạo ...
Nội dung trích xuất từ tài liệu:
ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU NGÔN NGỮ C# VÀ VIẾT MỘT ỨNG DỤNG MINH HỌA PHẦN 8Assemblies và Versioning Gvhd: Nguyễn Tấn Trần Minh Khang17.8.3 Tên mạnhMột tên mạnh là một chuỗi các ký tự hexa mang thuộc tính là duy nhất trong toàncầu (globally unique). Ngoài ra chuỗi đó còn được mã hóa bằng thuật toán khóacông khai 1 để bảo đảm rằng assembly không bị thay đổi vô tình hay cố ý.Để tạo ra tên mạnh, một cặp khóa công khai-bí mật được tạo ra cho assembly. Mộtmã băm (hash code) được tạo ra từ tên, nội dung của các tập tin bên trong assemblyvà chuỗi biểu diễn khóa công khai. Sau đó mã băm này được mã hóa bằng khóa bímật, kết quả mã hóa được ghi vào manifest. Quá trình trên được gọi là ký xác nhậnvào assembly (signing the assembly).Khi assembly được CLR nạp vào bộ nhớ, CLR sẽ dùng khóa công khai trongmanifest giải mã mã băm để xác định xem assembly có bị thay đổi không.17.8.4 Global Assembly Cache (GAC)Sau khi đã tạo tên mạnh và ghi vào assembly, việc còn lại để thực hiện chia sẻassembly là đặt assembly đó vào thư mục GAC. Đó là một thư mục đặc biệt dùngđể chứa assembly chia sẻ. Trên Windows, đó là thư mục WinNTassembly. 1 Mã hóa khóa công khai – bí mật: đó là một thuật toán mã hóa đặc biệt, đầu tiên dùng mộtthuật toán riêng tạo ra 2 khóa, một khóa phổ biến rộng rãi nên gọi là khóa công khai, khóa còn lạido chủ nhân của nó cất nơi an toàn nên gọi là bí mật. Sau đó dùng thuật toán mã hóa để mã hóa dữliệu. Một khi dữ liệu bị mã hóa bằng một khóa thì dữ liệu đó chỉ có thể được giải mã bằng khóa kiavà ngược lại. 199Attributes và Reflection Gvhd: Nguyễn Tấn Trần Minh KhangChương 18 Attributes và ReflectionXin được nhắc lại rằng một ứng dụng .NET bao gồm mã chương trình, dữ liệu,metadata. Metadata chính là thông tin về dữ liệu mà ứng dụng sử dụng như kiểu dữliệu, mã thực thi, assembly,…Attributes là cơ chế để tạo ra metadata. Ví dụ như chỉ thị cho trình biên dịch, nhữngdữ liệu khác liên quan đến dữ liệu, phương thức, lớp, …Reflection là quá trình một ứng dụng đọc lại metadata của chính nó để có cách thểhiện, ứng xử thích hợp cho từng người dùng.18.1 AttributesMột attribute là một đối tượng, trong đối tượng đó chứa một mẩu dữ liệu, mà lậptrình viên muốn đính kèm với một phần tử (element) nào đó trong ứng dụng. Phầntử (element) mà lập trình viên muốn đính kèm attribute gọi là mục tiêu (target) củaattribute. Ví dụ attribute:[NoIDispatch]được đính kèm với một lớp hay một giao diện để nói rằng lớp đích (target class) nênđược thừa kế từ giao diện IUnknown chứ không phải thừa kế từ IDispatch.18.2 Attribute mặc định (intrinsic attributes)Có 2 loại attribute: • Attribute mặc định: là attribute được CLR cung cấp sẵn. • Attribute do lập trình viên định nghĩa (custom attribute)18.2.1 Đích của AttributeMỗi attribute chỉ ảng hưởng đến một đích (target) mà nó khai báo. Đích có thể làlớp, giao diện, phương thức … Bảng sau liệt kê tất cả các đíchBảng 18-1 Các đích của attribute Loại Ý nghĩa All Áp dụng cho tất cà các loại bên dưới Assembly Áp dụng cho chính assembly Class Áp dụng cho một thể hiện của lớp ClassMembers Áp dụng cho các loại từ sau hàng này trở đi 200Attributes và Reflection Gvhd: Nguyễn Tấn Trần Minh Khang Constructor Áp dụng với hàm dựng Delegate Áp dụng cho delegate Enum Áp dụng cho kiểu liệt kê Event Áp dụng cho sự kiện Field Áp dụng cho biến thành viên (tĩnh lẫn không tĩnh) Interface Áp dụng cho giao diện Method Áp dụng cho phương thức Module Áp dụng cho module Parameter Áp dụng cho tham số Property Áp dụng cho property ReturnValue Áp dụng cho trị trả về Struct Áp dụng cho cấu trúc18.2.2 Áp dụng AttributeLập trình viên áp dụng attribute lên mục tiêu bằng cách đặt attribute trong ngoặcvuông [] liền trước mục tiêu. Ví dụ attribute “Assembly” được áp dụng: [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile(“keyfile.snk”)]Cách sau cũng tương đương với cách trên: [assembly: AssemblyDelaySign(false), assembly: AssemblyKeyFile(“keyfile.snk”)]Attribute thường dùng trong lập trình C# là “Serializable” [serializable] class MySerClassAttribute trên báo cho compiler biết rằng lớp MySerClass cần được bảo đảm trongviệc ghi nội dung, trạng thát xuống dĩa từ hay truyền qua mạng.18.3 Attribute do lập trình viên tạo raLập trình viên hoàn toàn tự do trong việc tạo ra các attribute riêng và đem sử dụngchúng vào nơi nào cảm thấy thích hợp.18.3.1 Khai báo Attribute tự tạo ...
Tìm kiếm theo từ khóa liên quan:
ngôn ngữ C# tin học ứng dụng lập trình windows lập trình C# mẹo hay cho tin học thủ thuật windowsGợi ý tài liệu liên quan:
-
Tài liệu bồi dưỡng giáo viên sử dụng SGK Tin học 10 Cánh diều (Định hướng Tin học ứng dụng)
61 trang 238 0 0 -
101 trang 199 1 0
-
20 trang 183 0 0
-
Cách gỡ bỏ hoàn toàn các add on trên Firefox
7 trang 180 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 177 0 0 -
Giáo trình Mạng máy tính (Nghề: Tin học ứng dụng - Trung cấp) - Trường Cao đẳng Cộng đồng Đồng Tháp
189 trang 164 0 0 -
bảo mật mạng các phương thức giả mạo địa chỉ IP fake IP
13 trang 158 0 0 -
Giáo trình Tin học ứng dụng: Phần 1 - Trường ĐH Tài nguyên và Môi trường Hà Nội
125 trang 151 0 0 -
Bài giảng Tin học ứng dụng: Kiểm định trung bình - Trường ĐH Y dược Huế
25 trang 144 0 0 -
161 trang 129 1 0