Uso ReSharper nei miei progetti C# e in genere mi piace. Tuttavia, continua ad aggiungere annotazioni al codice quando eseguo determinate azioni di refactoring.Interrompi reSharper dall'aggiunta di annotazioni
Per esempio, si aggiunge [NotNull]
quando uso il "Controllare il parametro per nulla" Azione contesto:
// Before context action
public void Foo(object input)
{
}
// After context action
public void Foo([NotNull] object input)
{
if (input == null)
{
throw new ArgumentNullException("input");
}
}
Inoltre, ReSharper poi aggiunge using JetBrains.Annotations
al file, anche se non mi fa riferimento l'assemblea JetBrains dove l'attributo è definito.
Vorrei continuare a utilizzare le azioni di contesto, in quanto sono molto utili, ma non posso introdurre annotazioni esterne nel codice. ReSharper fornisce un'opzione per cambiare lo spazio dei nomi di annotazione predefinito e per copiare il codice sorgente dell'attributo di annotazione nel progetto, ma anche questa non è un'opzione per questo progetto.
C'è un modo per dire a ReSharper di interrompere l'aggiunta di annotazioni interamente? Ho provato nelle opzioni deselezionando JetBrains.Annotations come spazio dei nomi con gli attributi di annotazione del codice, ma ciò non sembra avere alcun effetto sul fatto che le annotazioni siano generate in primo luogo.
Aggiornamento: Mentre non è stato effettivamente riferimento a JetBrains.Annotations.dll, ero riferimento a un'altra DLL che ri-implementato gli stessi attributi di annotazione nella stessa JetBrains.Annotations spazio dei nomi. La rimozione di tale riferimento DLL impedirà a ReSharper di aggiungere le annotazioni. Sarebbe bello se esistesse ancora un'opzione per disattivarlo, ma la soluzione alternativa si adatta a questa situazione.
NLog era la DLL che mi causava problemi. Non riesco a rimuoverlo, quindi ho fatto ricorso ad aggiungere le annotazioni al nostro spazio dei nomi di root perché vivere senza ReSharper non significa affatto vivere. –
Consiglio vivamente l'uso di annotazioni. –