현재 저는 서로 결합하여 작동하는 복잡한 객체 시스템이 포함 된 .NET 취미 프로젝트를 진행하고 있습니다. 그러나 약간의 문제가 발생했습니다. .NET에서 메커니즘을 찾아서 런타임에 코드를 대체 할 수 없으며 이전에로드 된 이전 코드를 처리 할 수 있습니다. 이는 모듈/객체를 동적으로 대체하고 사용자에게 변경 사항을 거의 즉시 표시하는 것을 의미합니다 (예 : 프로 시저를 다시 시작한 경우). 전체 프로그램은 다시 시작하지 않습니다..NET의 모듈 형 시스템 런타임에서 변경 가능
나는 각 세션에 대해 별도의 AppDomain
을 가질 수 있고 필요한 어셈블리를로드 할 가능성을 이미 고려했습니다. 그러나 이것은 약간 비싸 보입니다. 또한 모든 세션에는 데이터베이스에 연결하는 것과 같은 공통 기본 어셈블리의 이점이 있으므로 이러한 클래스를 모든 단일 세션에로드한다는 의미입니다. 별도의 AppDomain
에서 앞뒤로 데이터를 마샬링하면 데이터를 네트워크를 통해 클라이언트 응용 프로그램에 보낼 때 사용할 수있는 추가 오버 헤드가 발생하며이 코드는 세션을 관리하는 AppDomain
주 코드에 포함되어 있습니다.
코드의 특정 부분을 대체/언로드하는 프레임 워크 나 방법이 있습니까? 실제 응용 프로그램에서 어떻게 이루어 집니까? 해결 방법이있을 수 있습니까? 아니면 잘못된 도구 모음을 선택 했습니까?
나는'MEF'를 옵션으로 생각했지만 직접'AppDomain' 관리를해야합니다. – ax1mx2