2010-06-01 4 views
1

리플렉션을 사용하여 런타임에 일부 동적 유형을 방출합니다. 왜 그다지 중요하지 않습니다.Reflection Emit에서 생성 한 동적 생성 유형 제거

내 문제는 지금 당장 AssemblyBuilder, ModuleBuilder 및 TypeBuilder와 같은 클래스를 사용하여 유형이 완벽하게 생성되어 문제없이 그대로 사용할 수 있다는 것입니다.

그러나 생성 된 유형의 정의를 변경해야 할 수도 있습니다. 생성 된 어셈블리에서 생성 된 형식을 제거하려면 어떻게합니까?

답변

3

자신의 AppDomain에서 유형을 생성하고 전체를 언로드해야합니다. 그럼에도 불구하고 인스턴스가 도메인 경계를 넘지 않도록주의해야합니다. 그렇지 않으면 유형을 기본 도메인에로드 할 수 있습니다.

+0

한 가지 힌트 : 자신의 AppDomain에서 이러한 유형을 참조하면 재생산 할 수있는 능력이 없어지지만 그 반대는 사실이 아닙니다. 즉, 새 AppDomain에서 실행할 클래스를 만드는 것이 완벽하게 좋습니다. 유일한 트릭은 AppDomain에서 이러한 클래스를 인스턴스화 한 다음 .NET Remoting을 통해 호출해야한다는 것입니다. 그것은 다소 혼란 스럽지만 그렇게 열심히하지는 않습니다. –