2011-04-28 3 views
1

Silverlight 4 응용 프로그램을 빌드했는데 문제가 발생했습니다.Silverlight4 WebContext

모든 사용자가 모든 하위 시스템을 필요로하지 않으므로 다운로드/성능을 줄이기 위해 여러 xaps (다른 하위 시스템)로 응용 프로그램을 분할했습니다.

그러나 다시 인증하고 각 xap에 대해 WebContext를 설정하는 대신 xap간에 WebContext를 공유하려고합니다.

이것이 가능합니까? 그렇다면 어떻게 할 수 있습니까?

답변

1

모든 응용 프로그램과 라이브러리를 공유해야합니다. Project1.xap, Project2.xap 및 Project3.xap이라는 3 개의 XAP 프로젝트가 있다고 가정 해 보겠습니다. 이 모든 프로젝트는 로직을 공유하는 실버 라이트 클래스 라이브러리를 참조해야합니다. 이 공유 프로젝트에서 루트 응용 프로그램에 의해 구현되는 인터페이스를 만들 수 있습니다. 이 IApplicationContext를 호출 해 보겠습니다.

루트 응용 프로그램은 다른 모든 XAP를로드하는 XAP 파일입니다. Root.xap이라고 부르 자. 이것은 인증을 관리하고 작성시 다른 XAP로 전달할 IApplicationContext 구현을 작성합니다.

// This is available for all projects (shared.dll) 
public interface IApplicationContext 
{ 
    string Username { get; } 
    Guid SessionId { get; } 
    // ... 
} 

// This is implemented in the root application (Root.xap) 
public class MyAppContext : IApplicationContext 
{ 
    public string Username { get; private set; } 
    public Guid SessionId { get; private set; } 
    // ... 
} 

당신은 응용 프로그램 사이에 아무것도 공유 할 수 있습니다, 당신은 항상 스텁 /를 IApplicationContext을 조롱 할 수 있기 때문에 검증 별도의 프로젝트를 유지합니다.