2011-02-05 46 views
5

Thuộc tính giúp chúng tôi sử dụng các giá trị phụ thuộc vào lớp thay vì các trường hợp và chúng giúp chúng tôi thực hiện một số giá trị mà không cần liên quan chặt chẽ với các lớp của chúng tôi. Nhưng tôi tìm thấy một số hạn chế về các thuộc tính. Chúng tôi không thể thay đổi các giá trị này trong thời gian chạy. Vì vậy, tôi đang tìm một cách để sử dụng khái niệm tương tự như các thuộc tính như chúng ta đã thấy nhiều ví dụ cấu hình các lớp học bằng cách thông thạo apis thay vì các thuộc tính. Bạn có biết một thư viện sẵn sàng như vậy không? Cách thay thế để sử dụng khái niệm thuộc tính để tránh hạn chế thuộc tính là gì?Thay thế các thuộc tính là gì?

+0

Thuộc tính ở mức độ nào? – gunwin

+0

Bạn có thể đưa ra một ví dụ về một cái gì đó bạn đã thực hiện với các thuộc tính nhưng muốn thay đổi trong thời gian chạy? –

+0

@justin - Tôi muốn đại diện cho các đối tượng bằng một loại đầu ra xml vì vậy tôi muốn viết một số thuộc tính tùy chỉnh cho các giá trị giữ nhưng người dùng sẽ có thể thay đổi các biểu diễn đối tượng của chúng. – Freshblood

Trả lời

3

Thực tế trong một số trường hợp, bạn có thể có thể tinh chỉnh thuộc tính khi chạy - ví dụ qua TypeDescriptor - nhưng điều này chỉ ảnh hưởng đến việc sử dụng ComponentModel, không sử dụng phản chiếu. Bạn cũng có thể tự viết thuộc tính để thực hiện những việc như tra cứu resx cho mục đích i18n.

Nhưng lựa chọn khác:

  • có thể là một tài sản tĩnh, có lẽ sau một quy ước đặt tên
  • một mô hình đối tượng riêng biệt mà nói về các loại - một siêu mẫu, vì vậy để nói chuyện
  • một cấu hình hoặc tương tự

Mọi thứ sẽ hoạt động; đó là tốt nhất phụ thuộc vào chính xác những gì bạn có trong tâm trí.

0

Thay thế tốt thuộc tính trong kiến ​​trúc trình cắm có thể sử dụng quy ước đặt tên thông minh.

0

Có lẽ tôi đang thiếu thứ gì đó, nhưng bạn không thể chỉ thêm thuộc tính với công cụ đặt công khai vào thuộc tính tùy chỉnh của mình? Tôi chỉ cố gắng này trên một thực hiện mà tôi sử dụng thuộc tính, và tôi có thể thay đổi tài sản này tại thời gian chạy mà không có bất kỳ vấn đề.

Bạn muốn thay đổi giá trị nào?

+0

Nhưng bạn đã thay đổi giá trị thuộc tính của thể hiện của thuộc tính. – Freshblood

+0

Tôi thấy, vì vậy bạn cần ** kiên trì ** cho các thành viên có thể sửa đổi trong thuộc tính của bạn. Tôi biết không có thư viện đã thực hiện điều này, nhưng có vẻ như có thể. Thuộc tính tùy chỉnh của bạn có thể sử dụng bất kỳ biểu mẫu nào (ini/resource file/serialization/...) để lưu trữ các giá trị nội bộ của nó liên tục. Tôi giả sử serialization XML đơn giản không cung cấp cho bạn một giải pháp, bởi vì bạn muốn thay đổi các thiết lập trong thời gian chạy? –

+0

Có, tôi muốn có thể thay đổi giá trị khi chạy. Tôi nghĩ rằng tôi phải lưu các giá trị kiên trì vì vậy chỉ có câu hỏi xuất hiện trong tâm trí của tôi là làm thế nào để lưu chúng? tôi nghĩ rằng tôi sẽ chọn giá trị guid của loại cho nó. – Freshblood

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