Danh mục

ĐỒ Á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    
tailieu_vip

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 ...

Tài liệu được xem nhiều: