Assembly part 4

Chia sẻ: Dqdsadasd Qwdasdsad | Ngày: | Loại File: PDF | Số trang:5

0
55
lượt xem
11
download

Assembly part 4

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Thêm tài nguyên vào Assembly Trong phần này chúng ta sẽ xem sự hỗ trợ của kiến trúc .NET về các files nguồn, chúng sử dụng để dễ dàng quốc tế hoá , và sự hoạt động của vệ tinh assemblies.

Chủ đề:
Lưu

Nội dung Text: Assembly part 4

  1. Thêm tài nguyên vào Assembly Trong phần này chúng ta sẽ xem sự hỗ trợ của kiến trúc .NET về các files nguồn, chúng sử dụng để dễ dàng quốc tế hoá , và sự hoạt động của vệ tinh assemblies. Thuận lợi của sử dụng files tài nguyên thay cho lưu trữ một cách trực tiếp chuỗi hoặc hình ảnh trong chương trình chính là những lập trình không rành có thể dễ dàng hơn thay đổi các files tài nguyên này; mặc dù nó cần một programmer, hoặc tối thiểu biết sử dụng của một vài file batch để biên dịch lại chúng vào trong các file tài nguỵên mới. Nó không cần thiết tìm kiếm sourcecode cho chuỗi strings khi sử dụng các file tài nguyên cuối cùng chúng ta có thể dùng assembly vệ tinh để xác định vị trí mà chúng giữ tài nguyên. Trong phần này chúng ta sẽ học: • Tạo file tài nguyên, sử dụng tiện ích resgen và đối tượng ResourceWriter • Sửng dụng file tài nguyên và truy xuất nhúng tài nguyên với lớp ResourceManager • Định vị bằng sử dụng (satellite) assemblies vệ tinh • Sự định vị Visual Studio .NET hỗ trợ cho các ứng dụng Windows Tạo Files tài nguyên Files tài nguyên chứa đựng nhiều thứ như hình ảnh các bảng chuổi. Một file tài nguyên được tạo ra sử dụng một file văn bản bình thường hoặc một file .resX dùng XML. Chúng ta bắt đầu xét file văn bản Một tài nguyên nhúng một bảng chuổi có thể được tạo có thể sử dụng file văn bản bình thường. file này chỉ nhận chuổi nhập vào. Khoá là tên nó có thể được sử dụng từ 1 chương trình để nhận giá trị. Khoảng trắng được dùng trong cả khoá và giá trị. Ví dụ trình bày 1 bảng chuổi trong file strings.txt: Title = Professional C# Chapter = Assemblies Author = Christian Nagel Publisher = WROX Press ResGen Tiện ích resgen.exe sử dụng tạo một file tài nguyên strings.txt. Thực hiện như sau:
  2. resgen strings.txt Bạn có thế download file strings.resx có kèm theo tài liệu để tham khảo ResourceWriter Thay vì sử dụng tiện ích resgen để xây dựng các file tài nguyên, thì ta có thể dùng ResourceWriter. ResourceWriter là một lớp trong namespace System.Resources nó cũng hỗ trợ hình ảnh và các loại tài nguyên khác. Thí dụ dưới Chúng ta tạo một đối tượng ResourceWriter rw sử dụng một constructor tên file Demo.resources. Sau khi tạo thể hiện số tài nguyên có thể nâng lên 2GB trong trong tổng kích thước có thể thêm vào dùng phương thức AddResource() của lớp ResourceWriter. Thông số đầu tiên là khoá cụ thể và thông số thứ hai là giá trị cụ thể. Tài nguyên hình ảnh thêm vào nhờ lớp Image. Để dùng lớp Images, System.Drawing assembly phải được tham chiếu tới. chúng ta cũng mở namespace System.Drawing bằng chỉ dẫn.Đoạn mã sau: using System; using System.Resources; using System.Drawing; class Class1 { [STAThread] public static void Main() { ResourceWriter rw = new ResourceWriter("Demo.resources"); using (Image image = Image.FromFile("logo.gif")) { rw.AddResource("WroxLogo", image); rw.AddResource("Title", "Professional C#"); rw.AddResource("Chapter", "Assemblies"); rw.AddResource("Author", "Christian Nagel"); rw.AddResource("Publisher", "Wrox Press"); rw.Close(); } } } Khi bạn biên dịch chương trình sẽ tạo file demo.resources .Tài nguyên này sẽ được sử dụng trong một ứng dụng Windows .
  3. Sử dụng file tài nguyên File tài nguyên có thể được thêm vào assemblies sử dụng Assembly Generation Tool Al.exe dùng chọn lựa /embed option, hoặc trực tiếp dùng Visual Studio .NET. Để xem Visual Studio .NET sử dụng như thế nào , Tôi tạo một C# Windows Application và gọi nó là ResourceDemo: Trên menu của Solution Explorer (Add | Add Existing Item), Trước đây đã tạo file Demo.resources có thể đã được thêm vào dự án rồi. Mặc định BuildAction của tài nguyên này được thiết lập trong Embedded Resource, Nên tài nguyên này được nhúng vào output assembly: Quốc tế hoá (Internationalization and Resources) Khi viết ứng dụng dùng phân phối trên thế giới chúng ta luôn phải lưu ý sự khác nhau về văn minh văn hoá, vùng địa lý của từng miền. . . phải trả lời được bạn là ai và bạn đang ở đâu, tất cả phải mang tính quốc tế hoá . Một số định dạng khác nhau về số giữa các nước: US English 123,456,789.23 German 123.456.789,23 Swiss German 123'456'789.23 French 123 456 789,23
  4. Định dạng về ngày : US English 2/13/2002 Wednesday, February 13, 2002 UK English 13/02/2002 13 February 2002 German 13.02.2002 Mittwoch, 13. Februar 2002 French 13/02/2002 Mercredi 13 fevrier 2002 Phong tục thói quen (Cultures) Culture name Culture en English en-GB English (United Kingdom) en-US English (United States) fr French fr-FR French (France) de German Ví dụ kế tiếp tôi sử dụng Console Project. Trong đoạn mã trên trình bày một số được định dạng khác nhau giữa các quốc gia do khác nhau về văn hoá. using System; using System.Globalization; using System.Threading; namespace Wrox.ProCSharp.Assemblies.Localization { class Class1 { [STAThread] static void Main(string[] args) { int val = 1234567890; // culture of the current thread Console.WriteLine(val.ToString("N")); // use IFormatProvider Console.WriteLine(val.ToString("N", new CultureInfo("fr-fr"))); // change the culture of the thread Thread.CurrentThread.CurrentCulture = new CultureInfo("de-de"); Console.WriteLine(val.ToString("N"));
  5. } } } Kết quả trả về màn ảnh dưới đây. Bạn có thể so sánh kết quả ra từ danh sách khác nhau của US English, French, và German Bạn có thể xem download code trong chương trình kèm theo sách
Đồng bộ tài khoản