동적으로 인라인 SQL 쿼리 문을 생성하고 다양한 개체를 전달하는 응용 프로그램을 만들려고합니다. 내가 만든 각 개체 클래스에는 IRowMapper < ObjectName> GetMapping 메서드가 있습니다. 나는뿐만 아니라, 여러 가지 오브젝트 반환 형식이있을 것이다, 그러나동적으로 클래스 호출 실행 및 결정
result.List = new List<Object>(db.ExecuteSqlStringAccessor<Person>(sql, Person.GetMapping()).ToList());
:
나는 SQL을 실행하고 다음 명령을 사용하여 객체의 결과 목록을 생성, 내 예를 들어 나는 Person 객체를 사용합니다 사람. 문자열에서 클래스를 동적으로 가져 와서 ExecuteSQLStringAccessor를 호출 할 수 있는지 궁금합니다. 예를 들어, 다음과 같은 내용이 있습니다.
Type type = Type.GetType("MyClass", true);
result.List = new List<Object>(db.ExecuteSqlStringAccessor<type>(SSUDBHelper.OpenQueryRequest(sql, assoc), type.GetMapping()).ToList());
도움을 주시면 감사하겠습니다.
result.List = new List<Object>(db.ExecuteSqlStringAccessor<Person>(sql, Person.GetMapping()).ToList());
result.List = new List<Object>(db.ExecuteSqlStringAccessor<Company>(sql, Company.GetMapping()).ToList());
result.List = new List<Object>(db.ExecuteSqlStringAccessor<Invoice>(sql, Invoice.GetMapping()).ToList());
일반 :
업데이트
나는이 할 수 있습니까? GetMapping
정적 메서드이기 때문에
당신은 모든 모델을 구현하는 기본 클래스를 사용하여 기본 클래스를 만들 수 있습니다 (또는 인터페이스)에는 GetMapping 메서드가 있습니다. 또는 형식을 사용하여 리플렉션을 통해 메서드를 호출 할 수 있습니다. 마지막으로 동적을 사용하고 거기에서 호출 할 수 있습니다. – Measuring
'Person','Company' 및'Invoice'는'GetMapping' 멤버를 지정하는 공용 인터페이스를 공유합니까? –
또한 db.ExecuteSqlStringAccessor (sql, Invoice.GetMapping())을 사용하여 캐스트 할 수 있습니다. 이제 수행중인 작업 대신