Quali sono le migliori pratiche durante l'esposizione di lezioni da una biblioteca composta da diversi assiemi?

StackOverflow https://stackoverflow.com//questions/25054576

Domanda

Sono nel processo di creazione di una libreria che dovrebbe essere consumata da diverse applicazioni. Quelle applicazioni non dovrebbero vedere i dettagli di implementazione della biblioteca ma solo essere presentati con un'interfaccia ben utilizzabile.

Per ottenere una chiara struttura del progetto ho creato diversi progetti nella mia soluzione. Alcuni progetti contengono solo il codice che non dovrebbe essere visibile al mondo esterno perché dovrebbe essere utilizzato solo internamente. Tuttavia, questo codice deve essere accessibile attraverso i confini del progetto.

Per risolvere questo, ho creato diverse classi e metodi interni e quindi ho contrassegnato i loro assembly con l'attributo Internalsvisibleto nel mio assemblyinfo.cs. Questo funziona come previsto.

Tuttavia, mi chiedo se questa è davvero una buona pratica. Dopotutto, aggiro il modificatore di accesso interno che potrebbe confondere altri sviluppatori.

L'unica altra opzione che ho dovuto creare un solo progetto che deve quindi contenere tutto il codice interno contrassegnato come interno. Tuttavia, non mi piace questa soluzione in quanto significherà che non ho più chiara panoramica delle dipendenze nel mio codice.

Qual è la migliore pratica in questa situazione?

È stato utile?

Soluzione

hmm, questa sembra una domanda soggettiva, ma direi InternalsVisibleTo principalmente esiste per il test dell'unità.Direi che probabilmente non è le migliori pratiche per impostare i tuoi progetti in modo tale, e probabilmente punta a un problema sottostante.O non stai facendo pubblicare le cose che non sarebbe un danno per rendere pubblico, o le tue dipendenze non sono davvero dipendenze, sono un codice monolitico che dovrebbe probabilmente essere nello stesso posto.

Puoi leggere qui sugli assembly di amici.Il caso di uso primario è il test unitario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top