생성하기 전에 System.Reflection을 사용하여 CSV 텍스트 파일의 열 머리글 정보의 첫 번째 행을 출력하려고합니다. 내 데이터 원본의 실제 generic 목록입니다. 다음 루틴에서 클래스 개체의 System.Reflection.PropertyInfo 이름을 csv 파일의 첫 번째 행으로 추출하는 방법
public class DocMetaData
{
public const string SEPARATOR = "\t"; // horizontal tab is delimiter
public string Comment { get; set; }
public string DocClass { get; set; }
public string Title { get; set; }
public string Folder { get; set; }
public string File { get; set; }
}
, 나는 개체 정의의 속성을 통해 루프를 시도 내 출력 파일의 첫 행에 대해 "열 이름"으로 속성 이름을 사용하고 있습니다 :
private void OutputColumnNamesAsFirstLine(StreamWriter writer)
{
StringBuilder md = new StringBuilder();
PropertyInfo[] columns;
columns = typeof(DocMetaData).GetProperties(BindingFlags.Public |
BindingFlags.Static);
foreach (var columnName in columns)
{
md.Append(columnName.Name); md.Append(DocMetaData.SEPARATOR);
}
writer.WriteLine(md.ToString());
}
foreach 루프가 즉시 종료됩니다. 또한 클래스에 상수 구분 기호를 넣었지만이를 "열"이름이 아닌 필드 구분 기호 값으로 사용하려고합니다.
나는이 일을 얻을 수 있으면 클래스의 속성의 서수 위치가 일관되게 유지된다고 가정합니다.
내 데이터 소스에서 List<DocMetaData>
을 만드는 나머지 코드는 작동하지만이 "첫 번째 행"항목을 추가하고 싶습니다.
감사합니다.
나를 도와 주셔서 정말 대단합니다. 대단히 감사합니다. 아름답게 일했습니다. –