2013-05-02 2 views
1

У меня есть приложение silverlight, где я загружаю xaps с использованием MEF. Я хотел бы поставить токен авторизации в заголовок вызова, чтобы никто не смог достичь xaps. Что-то вроде этого:Как добавить заголовок к вызову MEF

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

Только проблема заключается в отсутствии метода AddHeader.

ответ

1

DeploymentCatalog использует WebClient под капотом, но, похоже, не может его каким-либо образом разоблачить.

Есть копия источника here (по какой-либо причине не удалось найти ее на CodePlex). URI используется WebClient для выполнения асинхронной загрузки. По завершении ответа используется для создания коллекции сборок с использованием 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, или любой другой.

Смежные вопросы