클라이언트가 Excel 파일, CSV 또는 탭 구분 파일을 가져올 수있는 프로젝트가 있습니다. 이 파일은 SQLite 데이터베이스 테이블로 변환되는 데이터 테이블에로드됩니다. 강력하게 형식화 된 객체 대 datatables로 작업하는 것을 선호합니다. 이렇게 생성 된 데이터베이스 테이블을 리플렉션을 사용하여 강력한 형식의 클래스로 쉽게 변환 할 수있는 방법이 있습니까? 키커는 응용 프로그램에 가져온 파일이 항상 다른 형식 (즉, 다른 열)이므로 강력한 형식의 개체를 하드 코딩 할 수 없으며 항상 생성되어야합니다.데이터 테이블 또는 데이터베이스 테이블에서 클래스 생성
답변
Ryan은 이미 올바른 질문을 던졌고 강하게 입력 된 클래스의 유일한 이점은 런타임에 디자인이나 컴파일 타임에 있지만 런타임에서는 볼 수 없다는 것뿐입니다.
아마도이 테이블을 사용하는 다른 응용 프로그램에서 강력한 유형 클래스를 작성한 SQLlite 테이블을 만든 후에 원할 수도 있습니다.
이 경우 T4 - Text Template Transformation Toolkit을 살펴볼 수 있습니다. 쿼리에서 강력한 형식 클래스를 만들 수 있으므로 추가 응용 프로그램을 위해 컴파일 할 때이 클래스를 사용할 수 있습니다.
그러나 사용하기 전에 T4가 best kept Visual Studio secret 중 하나임을 알아야합니다. ;-)
가능성이 있다면 C# 4의 새로운 dynamic
기능을 사용할 수 있습니다. 더 구체적으로는 ExpandoObject Class입니다.
ExpandoObject
는 구성원 동적으로 추가 및 실행시에 제거 될 수있는 오브젝트를 나타낸다.
또한 DynamicObject Class이 있습니다.
이론적으로, 당신은 Reflection.Emit를 같은 것을 사용하여 어셈블리를 만들 수 있습니다, 또는 :
대한 추가 정보를 원하시면 다음 링크에서보세요 코드 파일을 생성하고 컴파일러를 호출하여 이러한 파일을 어셈블리로 빌드 할 수도 있습니다.
그러나이 방법이 유용할지 모르겠습니다. 이 테이블의 스키마가 런타임에 결정된다면 생성 된 클래스의 사용은 리플렉션을 사용하지 않고 추가 한 강력한 형식의 속성을 사용할 수 없으며이 시점에서 본질적으로 약점이 추가 된 성능 반향으로 타자를 치는 무언가. C# 4.0의 동적 유형은 성능 저하를 제거 할 수 있지만 실제 이점이 없어도 여전히 많은 복잡성을 추가하고 있습니다.
- 1. 데이터베이스 테이블에서 참조 번호 생성
- 2. 데이터베이스 스키마의 클래스 생성
- 3. 데이터베이스 테이블에서 생성 된 테이블 - £ 기호를 추가하는 방법?
- 4. 데이터베이스 테이블에서 자바 도메인 개체를 생성
- 5. MySQL 테이블 용 데이터 생성
- 6. MySQL 데이터베이스 테이블에서 SQL 스크립트 생성
- 7. 데이터 집합 테이블에서 DB 테이블 만들기
- 8. 테이블 조인 또는 데이터 중복?
- 9. Winforms 데이터 바인딩 : 사용자 지정 클래스 또는 데이터 테이블?
- 10. 데이터베이스 스키마, 1 테이블 또는 2 테이블
- 11. 데이터 테이블 또는 데이터 세트의 테이블 표시
- 12. Flash Builder - 데이터베이스 테이블에서 양식 생성
- 13. PHP OOP : 데이터베이스 클래스 생성
- 14. 관계형 테이블에서 XML 생성
- 15. 이미지 데이터베이스 - 1 테이블 또는 2 테이블?
- 16. 데이터베이스 : 여러 테이블 또는 하나의 테이블?
- 17. 하이 차트/ROR - 데이터베이스 테이블에서 데이터 추출
- 18. MySQL - 데이터베이스, 테이블 및 사용자 생성 자동화
- 19. 안드로이드에 데이터베이스 테이블 데이터 표시
- 20. C# 데이터 테이블에서 SQL Server 테이블 만들기
- 21. mysql의 테이블에서 데이터베이스 데이터 삭제에 관해
- 22. 데이터 테이블에서 생성 된 사용자 정의 컨트롤
- 23. 한 열에 중복 레코드에 대한 데이터베이스 또는 데이터 테이블 쿼리
- 24. 테이블 스키마에서 엔티티 클래스 파일 생성
- 25. ADO.NET 엔터티 데이터 모델 : 자동 생성 클래스
- 26. 레일 마이그레이션 또는 수동 데이터베이스 생성?
- 27. 두 모델 클래스 - 하나의 데이터베이스 테이블
- 28. 샘플 데이터 생성 도구 (주로 데이터베이스 용)
- 29. ASP.NET - 데이터베이스 데이터 형식과 일치하도록 데이터 집합 테이블 어댑터 업데이트
- 30. 데이터베이스 관리 (SQLite) 및 테이블 생성