У меня есть проект, который считывает строки, возвращаемые из представления SQL Server, давайте назовем представление «Foo» и записываем эти строки в серию файлов. Используя LINQ2SQL для ссылки на представление в моем проекте, результаты Foo называются «FooResults».
Представленный ниже метод принимает тип объекта для анализа, а также разделитель, путь для записи файла и общий список данных для анализа. Я указал, где генерируется исключение.
public void WriteRecords<T>(T classType, string delimiter, string outputPath, List<T> data)
{
// Extract the property names and format as a delimited string
var properties = classType.GetType().GetProperties().ToList();
var headerLine = string.Join(delimiter, properties.Select(p => p.Name).ToArray());
var formattedHeaderLine = new[] { headerLine };
// Foreach line in the data provided, extract the values and format as delimited string
foreach (var d in data)
{
try
{
foreach (var pinfo in d.GetType().GetProperties())
{
// This is the line causing the problems
var value = pinfo.GetValue(pinfo, null);
}
}
catch (Exception ex)
{
var message = ex.Message;
}
}
}
Исключение составляет:
Объект не соответствует типу цели