Problema de descarga de archivos con el controlador api

public class DefaultController : Controller
{
    // GET: Default
    public ActionResult Index()
    {
        return Download();
    }

    public FileResult Download()
    {
        string xmlString = "my test xml data";
        string fileName = "test" + ".xml";
        return File(Encoding.UTF8.GetBytes(xmlString), "application/xml", fileName);
    }
}

Tengo el código anterior en la aplicación asp.net mvc para descargar un archivo. Funcionó bien ya que mi controlador se hereda a Controller. Pero cuando muevo este código al controlador Webapi, arroja un error al regresarExpediente. Después del análisis, descubrí que mi controlador en webapi está heredando a ApiController (controlador system.web.http.api). Descubrí que no hay clase de archivo en ApiController. ¿Hay alguna opción para implementar la funcionalidad de descarga de archivos en el controlador webapi?

Intenté el siguiente código alternativo en el controlador webapi pero no pude ver un archivo de descarga una vez que llamé a esto.

public HttpResponseMessage DownloadConstructedXmlFile()
        {
            var result = new HttpResponseMessage(HttpStatusCode.OK);
            string xmlContent = "My test xml data";
            //var serializer = new XmlSerializer(typeof(xmlContent));

            var builder = new StringBuilder();
            using (var writer = new StringWriter(builder))
            {
                // serializer.Serialize(writer, xmlContent);
                result.Content = new StringContent(xmlContent, Encoding.UTF8, "application/xml");
                result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = string.Format("test.xml")
                };
               // return result;
            }

            return new HttpResponseMessage();
        }

PD: Estoy tratando de usar el código angularjs para llamar a esta API a través del servicio angular. Esto se invoca al hacer clic en el botón de descarga. Cualquier código angular de muestra o ayuda en el código del controlador api o sugerencias sería útil.

Respuestas a la pregunta(3)

Su respuesta a la pregunta