Silverlight4 WebContext - PullRequest
       31

Silverlight4 WebContext

1 голос
/ 29 апреля 2011

Я создал приложение Silverlight 4 и столкнулся с проблемой.

Я разделил свое приложение на несколько xaps (разных подсистем), чтобы уменьшить загрузку / улучшить производительность, поскольку не все подсистемы необходимыКаждый пользователь.

Однако я хочу поделиться WebContext между xaps, вместо повторной аутентификации и установки WebContext для каждого xap.

Возможно ли это?Если так, как я могу достичь этого?

1 Ответ

1 голос
/ 29 апреля 2011

Вам нужно поделиться библиотекой со всеми вашими приложениями. Итак, давайте предположим, что у вас есть 3 проекта XAP с именами Project1.xap, Project2.xap и Project3.xap. Все эти проекты должны ссылаться на другую библиотеку классов Silverlight, которая имеет общую логику. В этом общем проекте вы можете создать интерфейс, который реализуется корневым приложением. Давайте назовем это IApplicationContext.

Корневое приложение - это файл XAP, который загружает все остальные XAP. Давайте назовем это Root.xap. Этот будет управлять аутентификацией и создаст реализацию IApplicationContext, которую он передаст другим XAP при создании.

// 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.

...