2014-12-08 8 views
11

ASP.NET 4.5에서는 Assembly.Load() 또는 AppDomain.CurrentDomain.Load()을 사용하여 런타임에 어셈블리를 동적으로로드 할 수 있습니다. 이 기능을 사용하면 실행중인 웹 응용 프로그램에 모듈을 추가하거나 재시작하지 않고도 새로운 기능을 모듈에 추가 할 수 있습니다.ASP.NET에서 모듈 형 기능 vNext Core CLR

코어 프레임 워크를 대상으로하는 새로운 ASP.NET vNext (5.0?)를 사용하여이 작업을 수행하는 방법에 대해 알고 싶습니다. 나는 이것이 전체 프레임 워크로 수행 될 수 있다는 것을 알고있다. System.AppDomain은 오버로드 된 Assembly.Load()과 함께 사용 가능하다. 핵심 프레임 워크를 대상으로 변경하면 더 이상 System.AppDomain을 사용할 수없고 Assembly.Load()이 제한됩니다.

ASP.NET 5.0 핵심 프레임 워크에서이 동적 모듈 기능을 사용할 수있는 방법이 있습니까?

+0

할 수 있습니다 등 정적 콘텐츠를 컨트롤러, 뷰를 가질 수 있습니다 dd460648 % 28v = vs.110 % 29.aspx). – haim770

+0

감사합니다. 이미 MEF를 고려했으며 핵심 프레임 워크에서 사용 가능한 것으로 보이지 않습니다. 'System.ComponentModel.Composition' 또는'System.Compostion'도 사용 가능한 것으로 보이지 않습니다. – Tom

+0

나는 지금 같은 일을하고있다. 그렇게 할 아이디어가 있습니까? 어쩌면 우리는 MEF와 같은 기능 대신 동적 컴파일을 사용할 수있을 것이라고 생각하십니까? –

답변

3

Asp.Net 5는 매우 새롭고 많은 설명서가 없기 때문에 나는 무엇이 좋을지 잘 모르겠습니다.

이론적으로 가능해야하며, 익숙한 것만 다를뿐입니다.

출처를 보면 조립품을 얻을 수있는 IAssemblyLoadContext 인터페이스가 있습니다. IAssemblyLoader도 있습니다.

이들은 기본적으로 응용 프로그램을 향상시키는 Asp.Net 5의 기본 조각 인 "kre"호스트에서 사용됩니다. 따라서 기본 호스트에 IAssemblyLoader을 추가해야합니다.

불행히도 아직 코드에서 확장 점이 많이 보이지 않습니다. 우리는 그 확장 지점을 얻을 것입니까? 나도 몰라. github 페이지에서 문제를 기록 할 수 있습니다. 현재 내가 보지 못하는 확장 점이있을 수도 있습니다.

질문으로 돌아가려면 Asp.Net 5 Core에 그런 종류의 확장 성을 추가 할 수 있습니까? 네, 기본 호스트와 비슷한 자체 호스트를 생성 할 수 있습니다. 그런 다음 사용자 정의 로더가 포함 된 다음 응용 프로그램을 시작하십시오.

+0

데이비드 감사합니다. 이것은 매우 다른 접근 방식입니다!나는 근원에서 발굴을 가지고 내가 찾을 수있는 것을 보게 될 것이다. – Tom

+0

나는 이미 [이 문제를 기록했습니다] (https://github.com/aspnet/KRuntime/issues/500)라고 생각합니다. 그래서 아직 추측됩니다. – Tom

1

당신은 그것을 밖으로 상자의 모듈 식 확장 ASP.NET 5 응용 프로그램을 할 수 있습니다 ExtCore 프레임 워크

을 시도 할 수 있습니다. 짧은

  1. 에서

    그것은 동시에 된 DLL로부터 nuget 패키지에서 두 모듈을 사용할 수있다.

  2. 이 모듈을 사용하면 모든 모듈이 단일 컨텍스트에서 저장소로 작업하고 자신의 모델과 저장소를 가질 수 있습니다.
  3. 모든 확장은, 당신은 MEF에서보세요 (http://msdn.microsoft.com/en-us/library/를 취할
  4. 에 관계없이 vNext의