2

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;
        }
    }
}

例外は次のとおりです。

オブジェクトがターゲット タイプと一致しません

4

1 に答える 1