Может быть лучше создать белый список против вещей внутри вашей способности контролировать, например, перечисления или локальные константы (или локальный белый список из данных конфигурации, если список не зафиксированзаранее).
В качестве грубой проверки вы можете проверить, является ли она интернированной , поскольку все литералы будут интернированы автоматически через ldstr
;но учтите, что вы также можете явно интернировать, так что это не на 100% безопасно.
И, конечно, в любом случае вопрос , который задают , если этоСтрока происходит где-то еще как литерал (не связанный с этим кодом), ему все равно можно доверять.Я полагаю, что белый список безопаснее ...
Белый список может быть простым:
private static readonly HashSet<string> whiteList = new HashSet<string> {
"good", "more good"
};
... check via whiteList.Contains(s)
, но учтите, что он все еще может изменяться во время выполнения (с помощью отражения при необходимости).