내 프로젝트의보고 엔진을 설계하고 있습니다. 프로젝트는 여러 리포트를 가지며, 각 리포트는 Linq 쿼리로 표현 될 수 있습니다. 일부는 매개 변수를 가지지 만 다른 매개 변수는 그렇지 않습니다.Linq 보고서를 처리하고 결과를 XML로 반환하는 일반적인 방법 찾기
내 고객의 요구 사항을 충족시키기 위해 쿼리의 결과를 XML 형식으로 반환해야만 자신의 취향에 따라 XSL 변환을 적용 할 수 있습니다.
내 계획은 지금까지 모든 보고서가 파생 될 추상 Report
기본 클래스를 갖는 것입니다. 기본 클래스는 다음과 같은 방법이 필요합니다
public virtual void SetParameter(string ParameterName, object Value) {
throw new NotImplementedException("This report does not accept parameters.");
}
public abstract object GetData(); // what return type?
public XElement GetXMLData() {
// calls GetData() and uses some kind of reflection to turn the data into XML?
}
이 조금 더이 문제를 구체화하려면 SetParameter()
은 매우 자명하다. GetData()
은 Linq 쿼리를 포함하고 IEnumerable<'a>
유형을 반환합니다. 여기서 'a
은 최종 결과의 익명 유형입니다. 하지만 분명히 뭔가를 익명 형식으로 선언 할 수는 없으므로 Linq 쿼리의 결과와 관련된 일반적인 방법이 필요합니다. 반환 된 필드를 반복하고 적절한 XML 스키마를 만들 수 있습니다.
GetData()
의 반환 유형은 무엇입니까? 필드 이름/값을 얻으려면 어떻게해야합니까? 또는 내 목표를 달성하기위한 더 좋은 방법이 있습니까?
데이터가 테이블 형식입니까, 아니면 반품에 하위 컬렉션이 있습니까? –
반환 할 하위 컬렉션이 될 수 있습니다. 내 코드는 모든 컬렉션을 통해 (재귀 적으로) 작동해야하며 "프리미티브"유형 속성을 XML로 변환해야합니다. –