Я искал самый эффективный и элегантный способ сделать следующее:
- Моя функция может быть вызвана, когда имя файла допустимо, повреждено, не существует
Функция просто десериализует объект XML.
Основные возможные результаты:
- OK
- Файл не существует
- Ошибка в XML-файле
Если я напишу так, читатель не закроется в случае повреждения файла.
Если я пишу reader.close () в блоке finally, он выдает предупреждение об использовании read перед присвоением ему значения.
Итак, как я могу решить это внутри саба ??
Public Function DeSerializzaXML(ByVal FileName As String, ByRef tmpObj As Object, ByVal tmpClass As Type) As Boolean
Dim serializer As XmlSerializer
Dim reader As StreamReader
Dim tmpSuccess As Boolean = False
Try
serializer = New XmlSerializer(tmpClass)
reader = New StreamReader(FileName)
tmpObj = serializer.Deserialize(reader)
reader.Close()
tmpSuccess = True
Catch ex As Exception
AggiungiRigaSuFile(ErroriPath, FileName + ", " + ex.Message, Configurazione.DiagnosticaOff, True)
Finally
End Try
Return tmpSuccess
End Function