T4 및 Visual Studio를 사용하여 부분 클래스를 연장하는 방법

StackOverflow https://stackoverflow.com/questions/376428

  •  22-08-2019
  •  | 
  •  

문제

T4를 사용하여 부분 클래스의 속성을 생성하고 싶었습니다. .tt 파일이 확장하려는 클래스 파일과 동일한 프로젝트에있는 구성 문제가 발생합니다. 따라서 .tt 파일에 어셈블리를 포함시켜야한다면 잠겨 있습니다. 사전 건설에서 명령 줄을하려고했지만 문제는 항상 프로젝트와 .tt 파일을 다시 컴파일하고 싶어한다는 문제가 있습니다.

내가 생각할 수있는 유일한 솔루션은 .tt 파일의 이름을 .t4로 바꾸어 .t4로 이름을 바꾸고 TextTransform -out과 함께 사전 구축 명령을 사용하여 프로젝트 디렉토리에서 .cs 파일을 작성하는 것입니다.

누구든지 더 깨끗한 방법을 생각할 수 있습니까?

도움이 되었습니까?

해결책

확장 해야하는 부분 클래스의 메타 데이터를 읽기 위해 반사를 사용하여 템플릿에 의해 잠금이 발생한다고 가정하면 코드 모델을 사용하는 경우 잠금 문제를 해결할 수 있습니다. 이 API는 Visual Studio에서 제공되며 부분 클래스를 컴파일하거나 컴파일 된 DLL을로드 할 필요없이 소스 파일에서 메타 데이터를 직접 가져올 수 있습니다. 다음은이 접근법을 사용하는 T4 코드 생성기의 예입니다. http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top