2010-08-26 20 views
6

Sınıfları, yöntemleri ve özellikleri intellisense'den nasıl gizleyebileceklerini bilen; ve böylece bir tür kitaplığından oluşturulan birlikte çalışma derlemelerinde görünmezler?Yöntem ve özellikleri gizlemek için intellisense

Henüz tüketicilere maruz kalmak istemediğimiz otomatik test için API kancaları yazıyorum. Bu, bizim yaptığımız SaxBasic editörü ile iyi çalışıyor gibi görünüyor, ancak birlikte çalışma derleme bir referans eklendiğinde nesneleri, yöntemleri ve özellikleri gizlemek için başarısız olur.

Bunları nasıl gizlemeye çalıştığımın bir örneği; çeşitli permütasyonlar denendi, şimdiden teşekkürler!

[ 
    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

neden dışa do yöntem don görülmek ister misin? Sadece onu verme! – Andrey

+0

Kısmen, çünkü uygulama geliştiricileri iç mantığa (dün) nasıl erişebileceğimi ve kısmen de veri modelinin son kullanıcıdan uzak tutulduğunu öğretti. Test çerçevemiz, üçüncü taraf geliştiricilerin beklediği şekilde bizim uygulamamızla etkileşime girer. – BrMcMullin

cevap

4

O Visual Studio görünür 2008 ve 2010 artık başka türlü gizli arayüzleri taranabilir hale 'gizli' özelliğini görmezden. birlikte çalışma derlemesi süsleyen tarafından değiştirilmesi gerekir görünür taranabilir olmak var ancak amaçlanan sınıfları, yöntemleri ve özellikleri üzerinde şu:

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

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