2012-09-17 2 views
1

별도의 어셈블리에있는 다른 TDM 템플릿을 상속하는 T4 템플릿을 만들려고합니다. 문제는 TextTemplatingFileGreator 사용자 지정 도구 (템플릿 지시문의 visibility 속성을 true로 설정 한 경우)를 사용하면 참조 된 어셈블리의 T4 템플릿이 생성되지 않지만 TextTemplatingFilePreprocessor 사용자 지정 도구를 사용하는 경우에만 문제가 있다는 것입니다.공개로 T4 템플릿 생성

내가 잘못 사용하고 있습니까? 대신 다른 기술을 사용해야합니까 (포함하거나 제안 된 here과 같은 것)?

UPDATE

의견 요청에 따라 시나리오에 대한 몇 가지 세부 사항 : 내 회사에서, 우리는 객체 (DTO들과 그 반대로 일반적으로 데이터베이스 엔티티) 사이의 컨버터/매퍼를 생성하는 재사용 가능한 프레임 워크가 필요합니다.

우리는 내부적으로 수행하는 것을 숨기고 일반적으로 런타임 예외, 특히 콜렉션과 관련된 결과를 숨기는 프레임 워크에 질려합니다.

리플렉션을 통해 다른 어셈블리의 개체 정의를 가져 오는 데이터 매핑 프로젝트에서 다시 사용할 수있는 템플릿을 정의하고 매핑 확장 메서드로 정적 클래스를 생성합니다.

감사 프란체스코

+0

달성하려는 전체 시나리오는 무엇입니까? – FuleSnabel

+0

Francesco, TextTemplatingFilePreprocessor를 사용할 때의 문제점은 무엇입니까? – GarethJ

답변

2

첫 번째 어셈블리의 독립 템플릿으로 모두 템플릿을 사용하고 두 번째에 상속 할 경우, 첫 번째 어셈블리에 두 개의 템플릿을 만드는 것이 가장입니다.

첫 번째 템플릿의 경우 TextTemplatingFileGenerator를 사용하고 실제 템플릿 텍스트를 포함하십시오. 두 번째 템플릿의 경우 TextTemplatingFilePreprocessor를 사용하고 내용이 첫 번째 템플릿 파일을 포함하는 단일 < # @ include #> 지시문이되게하십시오.

+0

예제를 보았습니다 (http://blogs.msdn.com/b/garethj/archive/2011/01/04/vs2010-sp1-t4-template-inheritance-part-ii-core-template). .aspx) 그리고 나는 나의 목표를 성취 할 수 있었다. 대단히 감사합니다. – fra