2010-08-26 25 views
6

Có ai biết làm thế nào để ẩn đúng lớp, phương pháp và tài sản từ intellisense trong khi vẫn giữ khả năng gọi cho họ; và vì vậy chúng không xuất hiện trong các hội đồng interop được tạo ra từ một thư viện kiểu?Làm thế nào để ẩn đúng cách phương pháp và tài sản từ intellisense

Tôi đang viết các móc API để thử nghiệm tự động, chúng tôi chưa muốn tiếp xúc với người tiêu dùng. Điều này dường như hoạt động tốt từ trình soạn thảo SaxBasic được xây dựng trong ứng dụng của chúng tôi, nhưng không ẩn các đối tượng, các phương thức và thuộc tính khi một tham chiếu được thêm vào hội đồng interop của chúng ta.

Dưới đây là ví dụ về cách tôi đang cố gắng ẩn chúng; hoán vị khác nhau đã được thử, cảm ơn trước!

[ 
    object, 
    uuid(guid), 
    helpstring("help"), 
    version(ver), 
    dual, 
    nonextensible, 
    oleautomation, 
    pointer_default(unique) 
]IApplication.VisibleObj 
interface IObj : IDispatch 
{ 
     //tried [hidden] here, no luck 
[propget, id(91001), helpstring("Help str. Available as of Object Model Version X.X.X."), hidden]//again tried [hidden] here, no luck 
    HRESULT Obj([out, retval] IObj** ppObj); 
} 
+1

tại sao bạn xuất phương pháp mà bạn don không muốn được nhìn thấy? chỉ cần không xuất nó! – Andrey

+0

Một phần vì đây là cách các nhà phát triển ứng dụng đã dạy tôi cách truy cập vào logic nội bộ (ngày hôm qua) và một phần vì mô hình dữ liệu được giữ cách xa người dùng cuối. Khung kiểm tra của chúng tôi tương tác với ứng dụng của chúng tôi giống như cách chúng tôi mong đợi các nhà phát triển bên thứ ba. – BrMcMullin

Trả lời

4

Dường như Visual Studio 2008 và 2010 giờ bỏ qua thuộc tính 'ẩn', làm cho giao diện ẩn có thể duyệt được. Dường như Interop Assembly phải được sửa đổi bởi adorning sau trên lớp, phương pháp và tính năng mà để tồn tại nhưng không thể duyệt:

[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] 

Nguồn: http://www.summsoft.com/blogs/garyvsta/archive/2009/02/06/preserving-hidden-elements-in-a-com-interop-assembly.aspx

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