visual studio plugin full code resharper resharper-5.0

plugin - resharper visual studio code



¿Cómo le digo a ReSharper que un atributo significa que se usa un método? (2)

Estoy jugando con SpecFlow , y ReSharper cree que mis definiciones de pasos no están en uso (supongo que porque se usan por reflexión):

[Binding] public class StepDefinitions { // ... [When(@"I press add")] public void WhenIPressAdd() // R# thinks this is unused { _calculator.PressAdd(); } // ... }

¿Cómo puedo decirle a ReSharper que los métodos con los atributos [Given] , [When] , [Then] (etc.) se usan realmente? No quiero usar // ReSharper disable UnusedMember.Global comentarios de // ReSharper disable UnusedMember.Global .

También podría marcar cada método (o toda la clase) con [JetBrains.Annotations.UsedImplicitly] . Yo tampoco quiero hacer eso particularmente.


Debe usar las anotaciones de JetBrains y marcar el atributo con un atributo MeansImplicitUseAttribute . Puede hacer referencia a JetBrains.Annotations.dll directamente, o puede copiar el código fuente de las anotaciones (de ReSharper / Options / Code Inspection / Code Annotations ) en su solución.

Si necesita anotar algún ensamblaje externo que no posee, debe crear un archivo de anotación externa (xml) en la siguiente carpeta: %ReSharperInstallDir%/Bin/ExternalAnnotations . Hay muchos ejemplos, puedes copiar algunos.

El archivo de anotaciones externas también puede estar en la misma ruta que la DLL si le DllNameWithoutExtension.ExternalAnnotations.xml nombre DllNameWithoutExtension.ExternalAnnotations.xml .


Hay muchos ejemplos, pero quería ser un poco más explícito en caso de que no quiera rastrear un ejemplo. :)

Cree un archivo con el nombre del ensamblaje del atributo (.xml) en% ReSharperInstallDir% / Bin / ExternalAnnotations. Por ejemplo, hice Microsoft.VisualStudio.QualityTools.CodedUITestFramework.xml y puse este XML dentro de él:

<assembly name="Microsoft.VisualStudio.QualityTools.CodedUITestFramework"> <member name="T:Microsoft.VisualStudio.TestTools.UITesting.CodedUITestAttribute"> <attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" /> </member> </assembly>

¡Reinicia VS y ya estás en camino!