2009-03-02 18 views
9

Tôi đang sử dụng lớp Settings trong dự án NET của tôi. Tôi nhận thấy trong trình chỉnh sửa rằng chỉ có một số loại nhất định có sẵn để được sử dụng làm loại cho các thuộc tính riêng lẻ trong lớp Cài đặt. Điều gì sẽ xảy ra nếu tôi muốn có một thuộc tính được liệt kê từ mã của tôi hoặc một bộ sưu tập chung chẳng hạn? Làm thế nào tôi sẽ thực hiện điều đó? Tôi đoán rằng tôi có thể làm điều đó trong một tệp riêng biệt bằng cách sử dụng cơ chế một phần (vì Cài đặt đã được định nghĩa là một phần) nhưng tôi muốn xem có ai đồng ý với điều đó không và nếu có thể có cách nào để làm điều đó trong trình chỉnh sửa.Sử dụng Cài đặt với các loại Complex

+0

Tôi không chắc chắn hiểu câu hỏi của bạn một cách chính xác, phần lớn là về trình chỉnh sửa và "một số loại nhất định có sẵn để được sử dụng làm loại", bạn có thể làm rõ hoặc nói lại cụm từ đó không? – mbillard

+0

Vâng, nếu bạn tạo một tập tin Settings.settings trong dự án của bạn có một trình soạn thảo mà bạn có thể sử dụng để thiết lập datatype, tên, vv của một thiết lập. Bạn chọn kiểu dữ liệu cho một thiết lập từ một hộp TreeList. Hộp TreeList đó chỉ tham chiếu một số loại nhất định. Các loại trong hội đồng của tôi không phải là tài liệu tham khảo. –

+0

được tham chiếu * không tham chiếu ... :) –

Trả lời

10

Tạo một "Cài đặt" mới tập tin để thêm một người dùng xác định loại/phức tạp của sự lựa chọn. Đây là một trong một Enum how-to.

Bước 1. Tạo nộp Cài đặt

alt text

Bước 2. Duyệt cho loại

alt text

Bước 3. Chọn loại (Namespace.TypeName)

alt text

Bước 4. Ta da - Xong

alt text

+0

Cảm ơn bạn, tôi không biết bạn có thể chỉ định loại và nó sẽ hoạt động. Bạn có biết nếu nó có thể xác định danh sách chung cho các thiết lập trong cùng một cách? –

+0

Tệp cài đặt cơ bản cho phép bạn trả lại bất kỳ loại nào bạn muốn, theo như tôi biết. Nhưng theo danh sách Chung, bạn có nghĩa là các bộ sưu tập chung? – Sung

+0

có, bộ sưu tập chung (mặc dù trong trường hợp của tôi tôi muốn có một danh sách) –

0

Làm nó trong một file riêng biệt như một phần của một lớp học phần là hoàn toàn chấp nhận được.

0

Nếu bạn muốn để có thể cư đối tượng phức tạp thông qua các file cấu hình, tôi sẽ đề nghị sử dụng một số khung Dependency Injection S.A. Spring.Net.

4

Để có được một lớp tùy chỉnh để hiển thị trong danh sách đó, chắc chắn rằng nó có một constructor mặc định là một trong những lựa chọn nó xây dựng. Tôi đã học được điều này một cách khó khăn

2

Để trả lời nhận xét/câu hỏi của Jeffrey về việc liệu Danh sách chung có thể có trong tệp cài đặt hay không, câu trả lời là có. Bạn chỉ cần chỉnh sửa tệp Cài đặt xml theo cách thủ công. Ví dụ, nếu tôi có lớp sau:

public class UrlAlias 
{ 
    public string Name { get; set; } 
    public string BaseUrl { get; set; } 
} 

tôi có thể tạo một danh sách các bằng cách nhấp chuột phải vào tập tin cài đặt của tôi và chọn Open With ...

Sau đó chọn XML/Text Editor, và đặt "Loại" giá trị cho tên lớp đầy đủ, ví dụ:

Type="System.Collections.Generic.List`1[MyProject.SomeNamespace.UrlAlias]" 

các thiết lập đầy đủ xml sẽ trông như thế:

<?xml version='1.0' encoding='utf-8'?> 
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MyProject.Properties" GeneratedClassName="Settings"> 
<Profiles /> 
    <Settings> 
    <Setting Name="UrlAliases" Type="System.Collections.Generic.List`1[CommonAddin.Data.DataSource.UrlAlias]" Scope="User"> 
     <Value Profile="(Default)"></Value> 
    </Setting> 
    </Settings> 
</SettingsFile> 

Khi bạn làm điều này, bạn nên có một danh sách cấu hình đúng các thiết lập tùy chỉnh đối tượng mà bạn đã tạo.

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