Problema de download de arquivo com o controlador da 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);
    }
}

Eu tenho o código acima no aplicativo asp.net mvc para baixar um arquivo. Funcionou bem, pois meu controlador é herdado do Controller. Mas quando eu movo esse código para o controlador Webapi, ele gera erro no retornoArquivo. Após a análise, descobri que meu controlador no webapi está herdando o ApiController (system.web.http.api controller). Descobri que não há classe File no ApiController. Existe alguma opção para implementar a funcionalidade de download de arquivos no webapi controller?

Eu tentei o código alternativo abaixo no controlador webapi, mas não consegui ver um arquivo de download quando eu chamo isso.

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();
        }

PS: Estou tentando usar o código angularjs para chamar essa API por meio do serviço angular. Isso é chamado ao clicar no botão de download. Qualquer código angular de amostra ou ajuda no código ou sugestões do controlador da API seria útil.

questionAnswers(3)

yourAnswerToTheQuestion