2009-12-29 3 views
5

Linux/mono에서 실행되는 오랫동안 실행되는 C# 서버 응용 프로그램이 있으며 응용 프로그램을 확장하기 위해 즉시 DLL 어셈블리를로드 할 수있는 기능이 추가되었습니다. 런타임에 위와 같은 DLL 어셈블리를 업데이트하는 것이 AppDomains를 사용하지 않고 수행 할 수 있음을 발견했습니다. AppDomains를 사용하지 않고도 이미 수행 한 작업을 수행 할 것입니다. 물론 해결 방법이있을 것이지만 그건 내가 정말로 원하는 것이 아니다.AppDomains를 피하려고 함

모노는 내가 놓친 다른 해결책을 제공합니까? C# 4.0에는이 분야에 새로운 것이 있습니까?

답변

0

나는 Mono.CSharp 라이브러리를 사용했습니다. 당신은 즉시 C# 코드를 컴파일 할 수 있고 메인 애플리케이션에 후크를 넣어 실행할 수 있습니다.

1

동작을 수정하기 위해 새 어셈블리를로드하는 대신 응용 프로그램을 구별되는 구성 요소로 분해하고 웹 서비스 또는 TCP/IP를 통해 통신하는 방법을 고려 했습니까? 이렇게하면 구성 요소가 호출되는 위치를 변경하여 런타임시 응용 프로그램의 동작을 변경할 수 있습니다. 예를 들어 새로운 behavoir 인 webservice를 사용하여 새 구성 요소를 만든 다음 기존 구성 요소에이를 사용하도록 지시 할 수 있습니다.

또한 모노 런타임으로 장시간 실행되는 응용 프로그램의 일부 메모리 문제를 해결합니다.

+0

메시지 위생 및 오버 헤드는 내가 피하려고하는 것입니다. 모노로 오랫동안 내 앱을 실행하는 데 문제가 없었습니다. – FlappySocks

관련 문제