세상에서 임의의 데이터 엔티티가 있다고 가정 해보십시오. 이 예에서는 스프레드 시트라고 가정 해 보겠습니다.
해당 데이터에 대한 스키마/메타 데이터를 가져 오거나 유추 할 수있는 방법이 있다고 가정 해 보겠습니다. 유형 (예 : 이중 대 문자열)과 관계 (예 :이 열은 '급여'를 의미) 및 메타 데이터 (예 : 이 시트는 2009 년 6 월 예산 용입니다).
유형 공급자를 사용하면 일종의 데이터 항목 (예 : 스프레드 시트)을 알고있는 종류의 '심 라이브러리'를 코딩하고 컴파일러/IDE 툴체인의 일부로 해당 라이브러리를 사용하여
과 같은 코드를 작성할 수 있습니다.
mySpreadsheet.ByRowAndColumn.C4
또는 뭔가, 그리고 인텔리 (자동 완성) 및 툴팁 (예를 들면 밥에 대한 급여로 세포 C4를 설명) 및 정적 타이핑을 얻을 수 (예를 들어,이 이중 또는 문자열 또는 무엇이든 그것이 될 수 있습니다). 본질적으로이 기능은 다양한 동적 또는 코드 생성 시스템의 사용 용이성을 활용하여 정적 유형의 객체 모델에 대한 툴링 능력을 제공합니다. '비용'은 누군가가 심 라이브러리 ('유형 공급자')를 작성해야한다는 것입니다. 그러나 그러한 공급자는 매우 일반적입니다 (예 : OData 또는 Excel 또는 WMI 또는 기타 등등을 말하는 사람). 따라서 소수의 유형 공급자 라이브러리 정적 타이핑 및 일류 툴링 지원으로 프로그래밍 언어로 방대한 양의 세계 데이터를 사용할 수 있습니다.
이 아키텍처는 공개 컴파일러로서 provider-authors는 새로운 이름/유형을 프로그래밍 컨텍스트에 삽입 할 수있는 작은 인터페이스를 구현합니다. 유형 제공자는 컴파일러/컴파일러/개발 부분에 참여하는 유형 제공자로 표시하는 추가 메타 데이터와 함께 컴파일러 (프로젝트의 참조, -r
-ed)에 전달하는 또 다른 라이브러리 일 수 있습니다.
비교를 그리기 위해 XML 예제에 "맞춤 매퍼"가 무엇인지 정확히 알지 못합니다.
기회 제공자가 언제 유형 공급자가 될 수 있을지에 대한 정보가 있습니까? 감사합니다 – jlezard
아니, 죄송합니다, 아직 정보가 없습니다. – Brian
사용자 지정 매퍼는 XML 파일을 강력한 형식의 개체 모델로 매핑하는 라이브러리를 의미했습니다. 그런 라이브러리와 타입 제공자 라이브러리의 큰 차이점을 알 수는 없다. – terjetyl