, возможно, я что-то не так делаю, но я возвращаю XML из моей службы WCF Rest, которая построена с VS 2010. В fiddler вы можете видеть, что она возвращает test / html в качестве типа содержимого
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 222
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 16 Aug 2010 20:49:55 GMT
Так что я пошел дальше и добавил следующее в атрибут webget в моем методе, но он все еще возвращает text / html ... Я предполагаю, что должен вернуть тип содержимого text / xml, потому что на самом деле я возвращаю XML?
Вот мой метод, я добавил ResponseFormat к атрибуту ... Я не был уверен, нужен ли мне bodystyle (я понятия не имею, что он делает, но видел это в примере :-))
[WebGet(UriTemplate = "", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
public List<SampleItem> GetCollection()
{
// TODO: Replace the current implementation to return a collection of SampleItem instances
return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello" } };
}
в любом случае после изменения и перестройки проекта он все равно возвращает неправильный тип контента ... я что-то пропустил?
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 222
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 16 Aug 2010 20:54:15 GMT
EDIT
Хорошо, у меня есть рабочее решение, но метод атрибута НЕТ ЭФФЕКТА, очень странно ... но если я поставлю это
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
Теперь я проверяю fiddler, а тип содержимого на самом деле text / xml.
Но мне нужно поместить это в каждый метод, и метод атрибута, похоже, не имеет никакого эффекта.
Кто-нибудь знает почему?