Похоже, ваша проблема не в методе RemoveSpecialChars
, а в возвращаемом значении SelectSingleNode
(которое может быть null
) или атрибуте Attributes["keypress"]
(которое также может быть null
) .
Любое из вышеперечисленного приведет к NullReferenceException
. Вот переписанный код для защиты от первого, который, вероятно, вызывает проблему:
var node1 = doc.SelectSingleNode("/Main/Answer[@answerid='1']");
var node2 = doc.SelectSingleNode("/Main/Answer[@answerid='2']");
Answer1 = node1 == null ? null : RemoveSpecialChars(node1.Attributes["keypress"].Value);
Answer2 = node2 == null ? null : RemoveSpecialChars(node2.Attributes["keypress"].Value);
Обновление
Для защиты от нулевого атрибута keypress
, вы должны сделать
Answer1 = node1 == null || node1.Attributes["keypress"] == null
? null
: RemoveSpecialChars(node1.Attributes["keypress"].Value);
и то же самое для Answer2
.