2013-07-26 23 views
7

Tôi đang cố gắng hiểu về ConfigurationManager trong .NET bằng cách thực hành nó trong các tình huống khác nhau.Khi hiểu về ConfigurationManager trong .NET

Tôi có hai dự án: Project1 và Project2. Project2 sử dụng Project1.

Tình huống của tôi: Tôi có một phần (serializedfilename) trong tệp app.config của mình trong project1. và tôi có dòng mã này trong một class1 của project1

private static string SerializedConfiguration = ConfigurationManager.AppSettings["SerializedFilename"]; 

Trong project2, tôi gọi một phương thức trong class1 của project1 và tôi nhận được một ngoại lệ.

giống như .NET doesnt của nó dường như có thể tìm thấy cài đặt trong tệp app.config của project1 khi được gọi từ project2 mặc dù i'v đã tham chiếu project1 một cách thích hợp.

Tuy nhiên, khi tôi di chuyển phần (serializedfilename) để app.config tập tin của project2 ... tất cả mọi thứ dường như làm việc tốt ...

Ai đó có thể giải thích cho tôi những gì đang xảy ra ở đây? Tôi bị cám dỗ để giả định rằng ConfigurationManager chỉ tồn tại trong ngữ cảnh của ứng dụng khách (trong trường hợp này là project2) và không phải trong ứng dụng gốc (project1 trong trường hợp này)

Lưu ý: Tôi mới (1month + to .NET))

Cảm ơn.

Trả lời

3

Khi bạn thêm ứng dụng tham chiếu.Config không được sao chép. App.config cần phải nằm trong dự án chính của bạn, trong trường hợp dự án của bạn 2. Nếu bạn thêm nó vào dự án 2 và gọi nó trong đối tượng Project 1 tham chiếu, bạn sẽ không nhận được bất kỳ lỗi nào vì VS sẽ chọn nó từ dự án chính của bạn.

+0

cảm ơn tôi đánh giá cao – oliverdejohnson

1

Chính xác, Trình quản lý cấu hình sẽ tìm đến hội đồng thực thi cho app.config hoặc web.config để tra cứu cài đặt.

Vì vậy, nếu thư viện lớp DLL của bạn truy cập cài đặt cấu hình đang chạy trong dự án trang web thì cài đặt ứng dụng sẽ cần phải được thêm vào web.config chứ không phải app.config của thư viện lớp.

+0

Cảm ơn bạn. nhưng làm thế nào đến các tài liệu không nói như vậy ... http: //msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx – oliverdejohnson

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