Рейтинг:
1
Richard Deeming
Первая проблема заключается в том, что вы не инициализировали список, так что rootjson.ListSourcesFile
возвращается null
, и любая попытка индексирования в список выбрасывает NullReferenceException
.
Вторая проблема заключается в том, что вы ничего не добавили в список. Когда вы попытаетесь получить первый элемент пустого списка, вы получите ArgumentOutOfRangeException
говоря вам, что индекс, к которому вы пытаетесь получить доступ, не существует.
Попробуйте инициализировать список, прежде чем обращаться к нему:
RootJson rootjson = new RootJson
{
App = appIdentifier.AppName,
ListSourcesFile = new List<SourcesFile>
{
new SourcesFile
{
Source = "Fdf",
},
},
};
// Or:
RootJson rootjson = new RootJson();
rootjson.App = appIdentifier.AppName;
rootjson.ListSourcesFile = new List<SourcesFile>();
SourcesFile file = new SourcesFile();
file.Source = "Fdf";
rootjson.ListSourcesFile.Add(file);
Amien90
Спасибо!
Работать отлично .. но последний дополнительный вопрос: как я могу добавить два исходных файла в одно и то же приложение?
Добавим еще: rootjson.ListSourcesFile.Добавить файл);
не будет работать
Richard Deeming
Почему это не сработает?
Любой:
RootJson rootjson = new RootJson
{
App = appIdentifier.AppName,
ListSourcesFile = new List<SourcesFile>
{
new SourcesFile
{
Source = "Fdf",
},
new SourcesFile
{
Source = "Sdr",
},
},
};
или:
SourcesFile file = new SourcesFile();
file.Source = "Fdf";
rootjson.ListSourcesFile.Add(file);
file = new SourcesFile();
file.Source = "Sdr";
rootjson.ListSourcesFile.Add(file);
будет работать.
Amien90
Да ... это работает ... но мне нужно запустить цикл, чтобы добавить элементы "SourceFiles". Таким образом, каждое приложение содержит несколько исходных файлов. Что-то вроде этого (см. код ниже) .. но с обоими вашими кодами .. я не могу использовать цикл while
строка содержание = приложение.GetScript();
using (StringReader reader = new StringReader(contents))
{
строки;
в то время как ((строка = читатель.С readline()) != нуль)
{
Файл = Новый SourcesFile();
файл.Исходная строка;
рутджсон.ListSourcesFile.Добавить файл);
}
}
Richard Deeming
А почему бы и нет? Этот код должен работать. В чем же ошибка?
Amien90
моя плохая ... твоя правая ... я не туда положил ... }
Рейтинг:
1
Amien90
RootJson rootjson = новый RootJson
{
App = appIdentifier.Имя_приложения,
ListSourcesFile = новый список & lt;sourcesfile>
{
новый исходный файл
{
Источник = " Fdf",
},
новый исходный файл
{
Источник = " Sdr",
},
},
};
или:
Файл SourcesFile = новый файл SourcesFile();
файл.Источник = " Fdf";
рутджсон.ListSourcesFile.Добавить файл);
Файл = Новый SourcesFile();
файл.Источник = " Sdr";
рутджсон.ListSourcesFile.Добавить файл);