Qualcuno saprebbe come nascondere correttamente classi, metodi e proprietà da intellisense preservando al contempo la possibilità di chiamarli; e quindi non appaiono negli assembly di interoperabilità generati da una libreria di tipi?Come nascondere correttamente metodi e proprietà da intellisense
Sto scrivendo ganci API per test automatici che non vogliamo ancora esposti ai consumatori. Questo sembra funzionare bene dall'editor SaxBasic integrato della nostra applicazione, ma non riesce a nascondere gli oggetti, i metodi e le proprietà quando viene aggiunto un riferimento al nostro assembly di interoperabilità.
Ecco un esempio di come sto tentando di nasconderlo; varie permutazioni sono state provate, grazie in anticipo!
[
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);
}
perché si esporta metodo che si don voglio essere visto? semplicemente non esportarlo! – Andrey
In parte perché in questo modo gli sviluppatori dell'applicazione mi hanno insegnato come accedere alla logica interna (ieri) e parzialmente perché il modello di dati è altrimenti tenuto lontano dall'utente finale. Il nostro framework di test interagisce con la nostra applicazione nello stesso modo in cui ci aspetteremmo da sviluppatori di terze parti. – BrMcMullin