2012-01-12 5 views
1

프로젝트의 폴더에 파일을 빌드하고 부분 클래스에 정의 된 속성을 사용하여 구현해야하는 속성을 결정하는 코드 템플릿이 있습니다. 예를 들어 :CSharpCodeProvider로 부분 클래스 컴파일

public partial class Thingy 
{ 
    Baz Biz { get; set; } 
} 
내가 이렇게 템플릿 인터페이스의 기대를 충족하기 위해 남아있는 정보를 생성 할 것이라는 점을 보장 할 수

도 수있을 것입니다 :

public partial class Thingy : IThingy 
{ 
    public Foo Bar { get; set; } 
} 

public interface IThingy 
{ 
    Foo Bar { get; set; } 
    Baz Biz { get; set; } 
} 

및 템플릿 생성 해 CSharpCodeProvider가 생성되지 않은 부분 클래스에서 구현 된 인터페이스의 절반 만 얻는 개념을 제외하고는 클래스를 생성합니다. 인터페이스가 전혀 구현되지 않는다는 것을 공급자에게 알리는 방법이 있습니까? 나는이 조금 더 생각해, 실제로, 문자열로 먼저 소스를 읽고 인터페이스 참조를 제거하고, CompileAssemblyFromSource에 코드의 문자열을 던지는 대신의 형태로 해결 방법을 냈어요 : 편집

CompileAssemblyFromFile,하지만 그것은 슈퍼 kludgy 느낌과 가능성이 버그를 소개합니다. 생각?

+0

결과적으로 결과 부분 클래스 집합을 컴파일 할 수 있습니까? – abatishchev

답변

0

인터페이스 구현 선언을 제거하려면 소스를 수정해야한다고 생각합니다.