Ответ Дэвида сделал трюк!vb.net console app merge неизвестное количество файлов XML, проблемы с добавлением в коллекцию-SOLVED
Я пытаюсь создать приложение, которое позволяет пользователю перетаскивать файлы в консоль. Консоль подает пути через посредник в коллекцию XmlTextReader
с, которые, в свою очередь, заполняют коллекцию DataSet
в цикле for на основе коллекции XmlReader
.count
и, наконец, объединяют все это. Ну все хорошо и денди, пока я не пытаюсь .add
в XmlTextReader
списке, то он бросает NullReferenceException
в виде error report from vbstudio
Я пытался исследовать, но просто не получить его. В приведенном ниже коде есть вся необходимая информация.
Imports System.Xml
Module Module1
Sub Main()
Dim input As String
Dim nl As String = Environment.NewLine
Dim xml_files As List(Of XmlTextReader)
Dim xml_ds As List(Of DataSet)
Dim ds_sum As DataSet
Do While input <> "merge"
Console.WriteLine("--- drag & drop file to be merged---" + nl)
input = Console.ReadLine()
If input <> "merge" Then
Dim xml__ As New XmlTextReader(input)
xml_files.Add(xml__) ' this is th plce that throws the exception
'xml_files.Add(New XmlTextReader(input)) something i tried
Console.WriteLine(nl & "--- drag & drop new file or order merge ---" & nl)
ElseIf input = "merge" Then
' ▼ ▼ ▼ ▼ read datasets to collection ▼ ▼ ▼ ▼
For i = 0 To xml_files.Count - 1
Dim ds As New DataSet ' mediator
ds.ReadXml(xml_files(i)) ' read one-by-one xml
xml_ds.Add(ds) 'i ubacuje u kolekciju xml_ds
Next
End If
Loop
' ▼ ▼ ▼ ▼ ovde sad ide XML MERGE ▼ ▼ ▼ ▼
ds_sum = xml_ds(0)
For i = 1 To xml_ds.Count
ds_sum.Merge(xml_ds(i))
Next
' ▼ ▼ ▼ ▼ ispis xml-a ▼ ▼ ▼ ▼
Console.WriteLine(nl & "--- direktorijum u koji zelis da sacuvas sabrani XML Prevuci u terminal ---" & nl)
input = Console.ReadLine()
ds_sum.WriteXml(input)
End Sub
End Module
`
Возможный дубликат [Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- it) – Blackwood
Попробуйте изменить Dim xml_files As List (Of XmlTextReader) в Dim xml_files Как новый List (Of XmlTextReader) –
Спасибо, это проделало трюк. –