2010-02-08 42 views
7

Tôi đang viết ASP.NET điều khiển tùy chỉnh, và tôi muốn nó có một vài thuộc tính sẽ chỉ hiển thị từ mã phía sau trong thời gian chạy - ý tôi là, các thuộc tính này không được hiển thị cả trong một nhà thiết kế và trong một mã aspx của trang chứa điều khiển này. Tôi đã cố gắng sử dụng thuộc tính sau:Làm cách nào để ẩn thuộc tính của điều khiển tùy chỉnh ASP.NET trong trang aspx?

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public List<Item> SomeData { ... }

nhưng tiếc là tài sản này vẫn hiển thị trong một combobox Intellisense khi chỉnh sửa trang aspx. Có thể ẩn thuộc tính này ở mọi nơi bên cạnh mã phía máy chủ không?

Trả lời

12

này nên làm các trick: Câu trả lời

//Hide from Designer Property Grid 
[Browsable(false)] 
// Hide from VS.NET Code Editor IntelliSense 
[EditorBrowsable(EditorBrowsableState.Never)] 
// Not Serialized in Designer Source code "HTML view" 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public List<Item> SomeData { ... } 
2

Amiir của chắc chắn công trình, nhưng tôi muốn thêm rằng đôi khi ngay cả sau khi áp dụng các thuộc tính, các Intellisense vẫn hiển thị các thuộc tính. Đây là kết quả của Visual Studio trong bộ đệm ẩn các tập tin Intellisense. Nếu bạn xây dựng cùng một dự án trên một máy khác, nó sẽ không hiển thị các thuộc tính. Nếu điều này thực sự gây lỗi cho bạn, bạn có thể xóa bộ nhớ cache bằng cách xóa tất cả các tệp trong thư mục "C: \ Documents and Settings \ [YOUR_USER_NAME] \ Application Data \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas."

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