Объект DirectoryToMonitor
не не соответствует файлу JSON. Этот файл содержит массив объектов с одним свойством, которое, в свою очередь, содержит свойства, соответствующие классу DirectoryToMonitor
.
Строка "DirectoryToMonitor"
в файле JSON указывает поле, а не тип объекта , JSON не имеет типов, и любой десериализатор JSON десериализует фрагмент JSON до любого типа, соответствующего его содержимому.
Чтобы ваш код работал, файл JSON должен выглядеть следующим образом:
"DirectoriesToMonitor": [
{
"Directory": "c:\\temp1",
"IncludeSubDirectories": true,
"FileTypes": "txt",
"ZipFiles": false,
"NotifyOnly": true
},{
"Directory": "c:\\temp2",
"FileTypes": "txt",
"ZipFiles": false,
"NotifyOnly": true
}
]
Если вы хотите сохранить файл без изменений, вам нужно использовать новый класс с одним свойством DirectoryToMonitor
, содержащим объект DirectoryToMonitor
:
class DirectoryToMonitorDTO
{
public DirectoryToMonitor DirectoryToMonitor {get; set;}
}
код должен измениться на:
List<DirectoryToMonitor> directories =
config.GetSection("DirectoriesToMonitor")
.Get<List<DirectoryToMonitorDTO>>()
.Select(dto=>dto.DirectoryToMonitor)
.ToList();