private object GetPackageDownloaderInstance(IPackageDetails packageDetails)
{
var innerPackagePropertyInfo = packageDetails.GetType().GetPropertyEx("Package");
if (innerPackagePropertyInfo == null)
{
return null;
}
var innerPackage = innerPackagePropertyInfo.GetValue(packageDetails, null);
if (innerPackage == null)
{
return null;
}
var downloaderPropertyInfo = innerPackage.GetType().GetPropertyEx("Downloader");
if (downloaderPropertyInfo == null)
{
return null;
}
var downloader = downloaderPropertyInfo.GetValue(innerPackage, null);
if (downloader == null)
{
return null;
}
return downloader;
}