【问题标题】:How do I add a header to a MEF call如何向 MEF 调用添加标头
【发布时间】:2013-05-02 15:24:27
【问题描述】:

我有一个 silverlight 应用程序,我在其中使用 MEF 下载 xaps。我想在调用的标头中放置一个授权令牌,这样任何人都无法访问 xaps。像这样的:

catalog = new DeploymentCatalog(_uri);
catalog.AddHeader(_header);
catalog.DownloadAsync();

唯一的问题是没有 AddHeader 方法。

【问题讨论】:

    标签: silverlight header mef


    【解决方案1】:

    DeploymentCatalog 在后台使用WebClient,但似乎没有以任何方式暴露它。

    有一份源代码here 的副本(由于某种原因在 CodePlex 上找不到它)。 WebClient 使用 URI 来执行异步下载。完成后,响应用于使用Package.LoadPackagedAssemblies 创建程序集集合。合成是使用这些程序集执行的。

    部分相关代码:

    //the download
    this.WebClient.OpenReadCompleted += new OpenReadCompletedEventHandler(HandleOpenReadCompleted);
    this.WebClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(HandleDownloadProgressChanged);
    this.WebClient.OpenReadAsync(Uri, this);
    
    //composition on completion of async download
    var assemblies = Package.LoadPackagedAssemblies(e.Result);
    this.DiscoverParts(assemblies);
    

    您可以创建一个执行相同操作但提供 AddHeader 方法的自定义目录,或公开WebClient 或其他任何内容。

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2019-09-12
      • 2016-04-08
      相关资源
      最近更新 更多