Вы можете инициализировать объект StreamResourceInfo
загруженным потоком zip (Xap или другим способом).
Затем можно использовать Application.GetResourceStream
, чтобы получить поток для файла из этого zip-файла, используя Uri
. В этом случае DLL, которая может затем загрузить с AssemblyPart
, а затем вызвать CreateInstance
: -
WebClient client = new WebClient()
client.OpenReadCompleted += (s, args) =>
{
StreamResourceInfo zip = new StreamResourceInfo(args.Result, "application/zip");
StreamResourceInfo dll = Application.GetResourceStream(zip, new Uri("b.dll", UriKind.Relative));
AssemblyPart assemblyPart = new AssemblyPart();
Assembly assembly = assemblyPart.Load(dll.Stream);
_someClassFromB = assembly.CreateInstance("b.SomeClass");
};
client.OpenReadAsync(new Uri("your.xap", UriKind.Relative));