Diễn Đàn » Hướng Dẫn Lập trình

Tạo hộp About động

0 trả lời, 415 lượt xem — Trang 1 / 1
Tạo hộp About động
Bạn muốn thu lấy thông tin phiên bản lúc thực thi với mục đích hiển thị trong hộp About.
Thu lấy một tham chiếu đến assembly hiện hành bằng Assembly. GetExecutingAssembly, và thu lấy AssemblyName của nó (có kèm thông tin phiên bản trong đó).
Đối với một ứng dụng, thật quan trọng khi nói đúng phiên bản của nó (và đôi lúc có thêm các thông tin như tên file và bản địa) mà không cần phải viết mã cứng cho dữ liệu này. Cơ chế phản chiếu cung cấp một giải pháp lý tưởng vì nó cho phép thu lấy các chi tiết này một cách trực tiếp từ siêu dữ liệu của assembly.
Đoạn mã dưới đây hiển thị vài mẩu thông tin về assembly hiện hành bằng cơ chế phản chiếu. Nó cũng trình bày cách thu lấy những thông tin đó một cách gián tiếp từ lớp System.Windows.Forms.Application (bất chấp kiểu ứng dụng là gì).
Public Module TestReflection    Public Sub Main()        Dim ExecutingApp As System.Reflection.Assembly        ExecutingApp = System.Reflection.Assembly.GetExecutingAssembly()        Dim Name As System.Reflection.AssemblyName        Name = ExecutingApp.GetName()        ' Hiển thị thông tin siêu dữ liệu.        Console.WriteLine("Application: " & Name.Name)        Console.WriteLine("Version: " & Name.Version.ToString())        Console.WriteLine("Code Base: " & Name.CodeBase)        Console.WriteLine("Culture: " & Name.CultureInfo.DisplayName)        Console.WriteLine("Culture Code: " & Name.CultureInfo.ToString())        ' (Nếu assembly đã được ký, bạn có thể sử dụng Name.KeyPair        '  để thu lấy khóa công khai.)        ' Một số thông tin được lấy từ lớp Application.        ' Thông tin phiên bản là giống hệt.        Console.WriteLine("Assembly File: " & _          System.Windows.Forms.Application.ExecutablePath)        Console.WriteLine("Version: " & _          System.Windows.Forms.Application.ProductVersion)        ' Thông tin Company và Product được thiết lập thông qua        ' đặc tính AssemblyCompany và AssemblyProduct (thường        ' nằm trong file AssemblyInfo.vb).        Console.WriteLine("Company: " & _          System.Windows.Forms.Application.CompanyName)        Console.WriteLine("Product: " & _          System.Windows.Forms.Application.ProductName)        ' Thông tin bản địa là bản địa hiện hành        ' (trong trường hợp này là en-US), trong khi        ' cơ chế phản chiếu thu lấy bản địa được chỉ định        ' trong assembly (trong trường hợp này là không có).        Console.WriteLine("Culture: " & _          System.Windows.Forms.Application.CurrentCulture.ToString())        Console.WriteLine("Culture Code: " & _          System.Windows.Forms.Application.CurrentCulture.DisplayName)        Console.ReadLine()    End SubEnd Module
Chú ý rằng GetExecutingAssembly luôn trả về một tham chiếu đến assembly mà mã lệnh đang thực thi ở đó. Nói cách khác, nếu bạn chạy một ứng dụng Windows (assembly A) có sử dụng một thành phần độc lập (assembly B), và thành phần đó cho gọi GetExecutingAssembly, nó sẽ nhận được một tham chiếu đến assembly B. Bạn cũng có thể sử dụng GetCallingAssembly (thu lấy assembly mà lệnh gọi được định vị ở đó) hoặc GetEntryAssembly (trả về assembly có thể thực thi đối với miền ứng dụng hiện hành).
@         Assembly là một từ khóa dành riêng trong Microsoft Visual Basic .NET. Do đó, nếu muốn tham chiếu kiểu System.Reflection.Assembly, bạn phải sử dụng tham chiếu dạng đầy đủ hoặc bạn phải đặt từ Assembly trong dấu ngoặc vuông.
' Lệnh này làm việc.Dim Asm As System.Reflection.Assembly ' Lệnh này cũng làm việc,' giả sử bạn đã nhập không gian tên System.Reflection.Dim Asm As [Assembly] ' Lệnh này sinh ra lỗi biên dịch,' vì Assembly là từ khóa dành riêng.Dim Asm As Assembly
 
Trích từ “Các giải pháp lập trình Visual Basic .Net (tập 1)
Đăng nhập để trả lời
0