Silverlight может извлечь файл из zip-архива с указанием имени файла. .NET способен создавать Zip-файлы. Таким образом, предполагая, что направление - сервер-> клиент (что звучит так, как оно есть), вы можете использовать этот код на стороне клиента: -
WebClient client = new WebClient();
client.OpenReadCompleted => (s, args)
{
StreamResourceInfo zipInfo = new StreamResourceInfo(args.Result, null);
StreamResourceInfo streamInfo = Application.GetResourceStream(zipInfo, new Uri("myfile.dat", UriKind.Relative));
YourFunctionToProcessTheDecompressedStream(streamInfo.Stream);
}
client.OpenRead(new Url("http://yourserver/somehandler.ashx"));
"somehandler.ashx" может взять некоторый поток ввода и сохранить его в zip-архиве как "myfile.dat", отправив полученный zip-файл в ответ.