Можно ли установить ContentType для метода WCF WebGet? - PullRequest
3 голосов
/ 09 марта 2011

Я работаю с методом WCF restful / http, который возвращает поток данных изображения. Я хочу убедиться, что тип контента помечен как "image / png". Метод определяется как:

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class TileImageService
{
    [WebGet(UriTemplate = "{id}")]
    public Stream GetTileImage(string id)
    {
        Bitmap bmp = new Bitmap(173, 173);
        Graphics g = Graphics.FromImage(bmp);

        g.Clear(Color.Blue);
        g.DrawString(DateTime.Now.ToLongTimeString(), new Font("Chiller", 20), Brushes.White, new PointF(10, 10));
        g.Flush();

        MemoryStream ms = new MemoryStream();
        bmp.Save(ms, ImageFormat.Png);

        ms.Seek(0, SeekOrigin.Begin);

        return ms;
    }
}

В Firefox похоже, что тип контента помечен как поток приложения / октета. Есть ли способ изменить тип контента?

1 Ответ

8 голосов
/ 09 марта 2011

Извините, я только что вспомнил, что делал это раньше:

WebOperationContext.Current.OutgoingResponse.ContentType = "text/html"; // or anything
...