Silverlight 4.0 Silverlight4网络上下文

Silverlight 4.0 Silverlight4网络上下文,silverlight-4.0,webcontext,Silverlight 4.0,Webcontext,我已经构建了一个Silverlight4应用程序,但遇到了一个问题 我已经将我的应用程序拆分为多个XAP(不同的子系统),以减少下载/提高性能,因为并非每个用户都需要所有子系统 但是,我希望在xap之间共享WebContext,而不是再次验证并为每个xap设置WebContext 这可能吗?如果是的话,我怎样才能做到呢 您需要与所有应用程序共享一个库。那么,假设您有3个XAP项目,分别称为Project1.XAP、Project2.XAP和Project3.XAP。所有这些项目都应该引用另一个具

我已经构建了一个Silverlight4应用程序,但遇到了一个问题

我已经将我的应用程序拆分为多个XAP(不同的子系统),以减少下载/提高性能,因为并非每个用户都需要所有子系统

但是,我希望在xap之间共享WebContext,而不是再次验证并为每个xap设置WebContext


这可能吗?如果是的话,我怎样才能做到呢

您需要与所有应用程序共享一个库。那么,假设您有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。

您需要与所有应用程序共享一个库。那么,假设您有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; }
    // ...
}
您可以在应用程序之间共享任何内容,这将使您的单独项目保持可测试性,因为您始终可以存根/模拟IAApplicationContext