2010-06-13 27 views
9

Tôi muốn thêm một số tệp xml làm tài nguyên cho dự án thư viện lớp của mình. Bất kỳ ý tưởng làm thế nào để làm như vậy, và gọi nó sau này? Trong ứng dụng cửa sổ tôi sẽ làm điều đó như ClassLibrary1.Properties.Resources.file.xmltài nguyên tại dự án thư viện lớp

Nhưng ở đây nó không làm việc bất kỳ ý tưởng làm thế nào tôi làm điều đó ở đây?

+0

Bạn đã làm gì mà không hiệu quả? Bạn đã thử cái gì? – dtb

+6

Địa điểm trên trái đất ở đâu? –

Trả lời

9

This article giải thích cách sử dụng tài nguyên được nhúng trong C#.

Nó nắm để

  1. Tại 'thời gian Thiết kế': Thêm tập tin vào dự án và đánh dấu nó như là một nguồn tài nguyên nhúng (tài sản)
  2. Tại 'Run thời gian': Nhận thể hiện của hội chứa tài nguyên bạn muốn, sau đó lấy tài nguyên đó ra dưới dạng luồng.

var assembly = Assembly.GetExecutingAssembly();

var stream = assembly.GetManifestResourceStream ("fully.qualified.name.of.the.resource");

Nếu bạn đang cố gắng tìm ra tên fq của tài nguyên, cách lười biếng là sử dụng reflector để mở lắp ráp giữ nó. Đi đến thư mục Tài nguyên, nhấp chuột phải vào tài nguyên cụ thể và chọn 'Sao chép'.

+0

Cảm ơn. Điều này đã giúp tôi. Một cách khác để lấy tên mà không cần tải xuống công cụ là truy cập _assembly.GetMainfestResourceNames() và dán một điểm ngắt ở đó. Bạn sẽ nhận được tất cả các tên sau đó bạn có thể sao chép/dán nó ra và thoát khỏi cuộc gọi của bạn để nhận được tên. :) – bgs264

8

Trong cửa sổ ứng dụng tôi sẽ làm điều đó như ClassLibrary1.Properties.Resources.file.xml

Theo mặc định, các lớp được tạo ra để truy cập các nguồn lực là nội bộ, vì vậy bạn không thể truy cập nó từ một hội đồng khác. Nếu bạn cần đặt nó ở chế độ công khai, hãy chọn tệp .resx, chuyển đến thuộc tính của nó và thay đổi thuộc tính Công cụ tùy chỉnh từ "ResXFileCodeGenerator" thành "PublicResXFileCodeGenerator". Công cụ tùy chỉnh này tạo ra các lớp công khai, nên giải quyết vấn đề của bạn.

2

Nhấp chuột phải vào Dự án thư viện lớp, chọn thuộc tính, trên các tab ở bên trái, chọn phần Tài nguyên.

Vì tệp .resx của bạn không được Visual Studio nhận dạng, hãy thêm tệp mới. Nó sẽ tạo một tệp .resx mới.

Sao chép tất cả nội dung gốc của bạn và dán vào nội dung mới. Sau đó, bạn có thể xóa một cái cũ. Đúng vậy!

Bạn cần phải lặp lại quy trình tương tự cho tất cả ngôn ngữ được hỗ trợ của mình.

Các vấn đề liên quan