C # Contrassegna le proprietà negli assiemi stranieri come obsolete?
Domanda
Vorrei contrassegnare alcune proprietà specifiche in un assembly esterno a cui mi riferisco come obsolete. È possibile farlo? Oppure è possibile ottenere un avviso / errore del compilatore se viene utilizzata una proprietà specifica?
Abbiamo la nostra classe DateTime per test specifici e voglio che tutti li usino e non le normali proprietà DateTime.Now e DateTime.Today.
Soluzione
È possibile modificare l'assembly esterno utilizzando ad es. CECIL. Tuttavia, questo è molto lavoro.
Di solito il modo migliore per archiviarlo è usare uno strumento di compilazione. La maggior parte delle catene di build ha anche uno strumento per testare la conformità del codice. E in questi è facile aggiungere una regola per emettere un avviso quando vengono utilizzate proprietà / metodi specifici.
Altri suggerimenti
No, non è possibile modificare i metadati di tipi stranieri e AFAIK non è possibile generare un avviso se viene utilizzato un tipo / membro esterno specifico.