tengo esta muy simple DTO:una imagen de un servicio WCF REST
[DataContract]
public class DTO
{
[DataMember]
public byte[] Image {get; set; }
}
Y este servicio muy simple:
[ServiceContract]
public interface IFooService
{
[WebGet(
UriTemplate = "",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
List<DTO> GetDTOs();
}
En mi Global.asax, que tengo:
RouteTable.Routes.Add(new ServiceRoute("foo",
new WebServiceHostFactory(), typeof(FooService)));
Ahora, cuando llamo esto desde mi navegador, obtengo una matriz de bytes en formato JSON. Bien hasta ahora. Ahora, ¿cómo convierto ese conjunto de bytes en una imagen?
O, ¿hay una mejor manera de hacerlo? Traté de cambiar byte[]
a Stream
, pero cuando llamo al servicio desde Firefox, la respuesta está vacía a pesar de un código de estado HTTP de 200. Estoy usando Firebug y Fiddler.
no creo que sea relevante, pero ya que un exceso de información no hace daño a nadie que no era un robot, aquí está el web.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
En última instancia, creo que la pregunta es: ¿cómo usted devuelve un mapa de bits de un servicio WCF RESTful para que JavaScript se ejecute en el navegador puede lanzarlo en la pantalla?
no puedo entender la lógica del voto hacia abajo aquí. –