Изменить тип содержимого ответа можно любым способом в веб-службе WCF с помощью класса WebOperationContext .
В качестве примера в следующем коде показано, как использовать этот класс для установки типа контента в application / xml и возврата потока в кодировке UTF-8:
[ServiceContract]
public interface IPolicyProvider
{
[OperationContract, WebGet(UriTemplate = "/ClientAccessPolicy.xml")]
Stream ProvidePolicy();
}
public sealed class StockService : IPolicyProvider
{
public Stream ProvidePolicy()
{
WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml";
return new MemoryStream( Encoding.UTF8.GetBytes(File.ReadAllText("ClientAccessPolicy.xml")) , false);
}
}
Если вам интересно, этот пример предназначен для включения междоменных вызовов для клиентов Silverlight в автономном веб-сервисе WCF, посмотрите здесь , чтобы узнать больше, и у меня есть загрузка кода прилагается к этому сообщению .
В вашей ситуации для ответа от вашей службы WCF вы должны установить тип контента равным application / soap + xml и использовать UTF-8.
Класс WebOperationContext находится в сборке System.ServiceModel.Web и является частью .NET Framework 3.5.
Надеюсь, это поможет.