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!