Учитывая эти два класса:
public class Abc
{
public static void Method(string propertyName) { }
}
public class Def
{
public int Prop { get; }
public void Method2() { Abc.Method("Prop"); }
}
Как есть, правило Roslyn CA1507 (используйте nameof) будет срабатывать для Method2
. Я не хочу этого, потому что эта строка используется для долгосрочной пользовательской сериализации и никогда не может измениться (если мы решим изменить имя Prop
, мы не будем изменять эту строку). Я не хочу отключать правило на уровне сборки или даже на уровне класса. Также есть сотни абонентов, таких как Def
, поэтому я хочу что-то, что не требует от меня каких-либо действий с вызывающими абонентами.
Есть ли какой-нибудь [ExcludeParameterFromCodeAnalysis], который я могу включить в параметр propertyName
, чтобы исключить его из всего или некоторого анализа кода?
Вот концепция, которая, я надеюсь, существует, или ее вариант:
public class Abc
{
public static void Method([SuppressMessageForCallers("CA1507")]string propertyName) { }
}
public class Def
{
public int Prop { get; }
public void Method2() { Abc.Method("Prop"); }
}
const string Bob
, для которого установлено значение"Prop"
, и используете его вместо этого, выдает ли это предупреждение? - person mjwills   schedule 02.08.2018