2009-03-03 5 views
7

Sto scrivendo la mia prima libreria di classi in VB.NET. La mia idea è di distribuire questa libreria in modo che altri possano usarla nelle loro applicazioni..net - Come faccio a nascondere metodi/proprietà della mia libreria di classi (dll) da IntelliSense di Visual Studio?

Tuttavia, forse a causa della mia mancanza di esperienza nella scrittura e nella strutturazione della libreria e delle classi in esso contenute, ho notato che i metodi/proprietà sono TUTTI visualizzati nell'IntelliSense di Visual Studio.

Il fatto è che molti di essi sono utilizzati solo all'interno della libreria stessa e NON devono essere utilizzati dagli sviluppatori (potrebbero creare un disastro) quando incorporano la mia libreria nella loro applicazione - solo alcuni dovrebbero essere visibili, ad esempio quelli che sono necessari allo sviluppatore.

Quindi, la mia domanda è: c'è un modo per nascondere determinati metodi/proprietà della mia libreria da IntelliSense di Visual Studio? Forse qualcosa di simile a REM?

Grazie in anticipo.

EDIT: come già detto - questo è il mio primo Biblioteca e ora capisco che la mia domanda potrebbe essere interpretate in due modi:

1) come nascondere qualcosa da IntelliSense

2) come prevenire un sviluppatore dall'utilizzo e chiamando determinati metodi/proprietà

Ovviamente, il risultato finale che voglio è che lo sviluppatore non sia in grado di accedere a TUTTI determinati metodi/proprietà, ad esempio il n. 2 sopra.

Molte grazie. Ho appena appreso qualcosa di nuovo oggi e studierò i livelli di accesso ...

risposta

23

solo i tipi/metodi/proprietà che si desidera rendere visibili devono essere dichiarati Public. Il resto dovrebbe essere dichiarato Private, Protected, Friend o Protected Friend.

Ulteriori informazioni su questi livelli di accesso sono disponibili su MSDN web page for them. In generale, di solito dovresti rendere le cose pubbliche solo come devono essere realmente.

+1

+1 Penso che questo è in realtà ciò che il PO è stato dopo - non pensavo che in un primo momento. –

+0

Andrew: Hai ragione ma immagino che la mia domanda fosse molto vaga. SOrry a riguardo. – moster67

+0

è arrivato qui tramite Twitter di Skeet. Bene! Upvoting. – abelenky

4

È necessario modificare i loro modificatori di accesso su qualcosa di diverso da Pubblico. Se vengono utilizzati solo all'interno di una determinata classe, renderli Private Sub XYZ(). Se hanno bisogno di essere accessibile da altre classi nello stesso assembly, renderli Amico Sub XYZ(), ecc

http://msdn.microsoft.com/en-us/library/76453kax.aspx

2

Per riferimento: http://www.fmsinc.com/free/NewTips/NET/NETtip23.asp

[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
public void myHiddenMethod() { 
} 
+0

Per chi ha downvoted questo: basta modificare, anche se la lingua non è buona, la risposta da sola risolve il problema. Basta modificare. –

0

C'è un attributo che è possibile applicare al vostro codice, meta-dati che encurage Visual Studio per nascondere il codice. Questo codice può ancora essere chiamato e consiglio contro di essa, ma se si ha realmente bisogno, basta aggiungere:

What Andrew Hare said... 

... al codice.

2

Se si desidera nascondere loro quindi aggiungere un tag filterpriority al commento XML della funzione con il valore 3

''' <summary> 
''' </summary> 
''' <filterpriority>3</filterpriority> 
''' <remarks></remarks> 
Sub DontShowMe() 

End Sub 

In questo modo nascondere di default in IntelliSense.Puoi anche controllare il posizionamento nella scheda Comune/Tutti con i valori 1/2 rispettivamente.

Post sul tema: http://www.lostechies.com/blogs/sdorman/archive/2009/01/10/xml-comments-filterpriority.aspx

Problemi correlati