Попробуйте помещать ваше пространство имен в {
... }
следующим образом:
string xfaNamespace = "{http://www.xfa.org/schema/xfa-template/2.6/}";
Я не уверен, как это может работать в Linux, не должно. Эта строка:
defer erh.Check(rows.Close())
выполнит rows.Close()
немедленно , сохранит возвращаемое значение, затем отложит только вызов на erh.Check
. Вот как работает отсрочка - аргументы оцениваются сразу. Из документов :
Каждый раз, когда выполняется оператор «defer», значение функции и параметры для вызова оцениваются как обычно и сохраняются заново, но фактическая функция не вызывается .
blockquote>Если вы хотите использовать такую конструкцию, она должна быть в замыкании, что-то вроде:
defer func() { erh.Check(rows.Close()) }()
, чтобы не было аргументов для оценки во время
defer
.