private void DownloadEmbeddedResource(
string resourceName, Assembly resourceAssembly, string downloadFileName )
{
using ( Stream stream = resourceAssembly.GetManifestResourceStream( resourceName ) )
{
if ( stream != null )
{
Response.Clear();
string headerValue = string.Format( "attachment; filename={0}", downloadFileName );
Response.AppendHeader( "Content-Disposition:", headerValue );
Response.AppendHeader( "Content-Length", stream.Length.ToString() );
Response.ContentType = "text/xml";
var byteBuffer = new Byte[1];
using ( var memoryStream = new MemoryStream( byteBuffer, true ) )
{
while ( stream.Read( byteBuffer, 0, byteBuffer.Length ) > 0 )
{
Response.BinaryWrite( memoryStream.ToArray() );
Response.Flush();
}
}
Response.End();
}
}
}
Я закончил тем, что использовал этот метод выше. Спасибо, что помогли мне с синтаксисом tsilb. JohannesH, я бы воспользовался вашей рекомендацией, если бы ресурс не был из другой сборки (извините, я должен был это прояснить в своем первоначальном вопросе).
Приведенный выше код работает, но я сталкиваюсь с довольно странной проблемой ... После того, как метод завершен и загрузка завершена, кажется, что страница так и не вернется к жизни, а мышь все еще находится в режиме песочных часов, как и думает работа ведется Есть идеи, как это исправить?
Еще раз спасибо за вашу помощь!