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
, или любой другой.