2011-11-05 30 views
10

Tôi có một Dự án Thư viện để thanh toán. Chứng chỉ trực tiếp của ứng dụng khách trên tệp web.config của trang web và dự án thư viện lớp này sẽ được thêm vào thùng dưới dạng dll. Vì vậy, làm thế nào để có được ConfigurationManager trong thư viện lớp Vì vậy, tôi có thể nhận được thông tin xác thực của khách hàng và thực hiện thanh toánCách sử dụng Lớp Trình quản lý Cấu hình trong một Loại dự án Thư viện Lớp

Trả lời

8

Nói chung một lớp trong thư viện không nên đọc web.config trực tiếp và lấy cài đặt trong hàm tạo.

Tuy nhiên, có thể chấp nhận thư viện trong một số trường hợp để đọc trực tiếp web.config. Để biết rằng bạn có thể xác định một số custom configuration section hoặc sử dụng WebConfigurationManager.AppSettings

Bạn cần thêm tham chiếu vào System.Web assembly và bạn cần bao gồm không gian tên System.Web.Configuration trong tệp nơi bạn muốn sử dụng trình quản lý cấu hình.

+0

Xin vui lòng bạn có thể viết một số mã cho rằng vì tôi có mã từ liên kết của bạn nhưng vẫn WebconfigurationManager không được hiển thị trong thông tin tình báo của studio –

+0

@Muhammad - bạn có thể xây dựng trên nhận xét này? << Nói chung một lớp trong thư viện không nên đọc web.config trực tiếp và nhận các thiết lập trong hàm tạo. >> Tại sao vậy? Tôi giả định về mặt kiến ​​trúc này là ok vì thư viện lớp được nạp trong ngữ cảnh của máy chủ ứng dụng web. – Howiecamp

+0

nếu bạn đơn vị kiểm tra lớp học của bạn, bạn sẽ không có web.config để nạp nó, thư viện thường là các tiện ích có thể sử dụng lại không được gắn với nền tảng hoặc ngữ cảnh mà chúng chạy, trừ khi bạn có một thư viện cụ thể đó là chỉ dành cho các ứng dụng dựa trên web, trong trường hợp đó bạn có thể định nghĩa phần cấu hình của riêng bạn, vì cấu hình được sở hữu bởi ứng dụng chứ không phải thư viện. –

0

di chuyển cài đặt cấu hình thư viện lớp của bạn sang web.config.

1

Sẽ tốt hơn nếu bạn có thể di chuyển lớp đó ra khỏi thư viện lớp học nhưng nếu bạn không thể hoặc bạn không muốn làm điều đó, thì bạn có thể làm việc với System.Configuration.

1) Thêm tham chiếu vào System.Configuration.

2) Sử dụng ConfigurationManager thay vì WebConfigurationManager; mã sẽ gần như giống nhau, chỉ cần thay thế WebConfigurationManager bằng ConfigurationManager.

0

Tôi có cùng vấn đề này, tôi giả sử bạn muốn sử dụng ConfigurationManager để truy cập một số thuộc tính trong tệp cấu hình của mình.

Cách khác là thêm tệp cài đặt vào dự án. Đó là những gì tôi đã làm trong dự án của tôi:

  1. Nhấp chuột phải vào tên dự án, đi đến liên kết Thuộc tính trên menu.
  2. Nhấp vào liên kết cài đặt ở tab bên trái
  3. Nếu bạn chưa tạo một VS sẽ cung cấp cho bạn liên kết để tạo một liên kết.
  4. Khi bạn đã tạo, bạn có thể thêm cặp giá trị khóa cho thuộc tính bạn yêu cầu.
  5. VS sẽ bao gồm tệp cài đặt.settings trong dự án của bạn sẽ chứa các thuộc tính mà bạn đã thêm vào tệp cài đặt (bạn sẽ thấy chúng trong Cài đặt.Designer.cs giả sử bạn đang sử dụng C#)
  6. Sau đó bạn có thể truy cập vào các thiết lập trong các lớp học của dự án của bạn bằng cách làm [ProjectNamespace].Properties.Settigns.Default.[PropertyName]
Các vấn đề liên quan