Q:

Como mandar 1 objeto e 1 vetor para uma API em C# com $http.post?

Em minha aplicação criei uma API em C#, que é consumida por minha aplicação web em Angular. Preciso passar 1 objeto e 1 vetor como parâmetros para a API, mas o conteudo chega vazio na API, como resolver?
Segue abaixo meus códigos:
Parte em JavaScript:
    $scope.Exportar = function () {

   var listProdutos = {
       ListaCompraVenda : {listacompravenda: $scope.modelcompraevenda.listProdutos},
       ListaMeses : {meses:[$scope.dataBase.data1,
       $scope.dataBase.data2,
       $scope.dataBase.data3,
       $scope.dataBase.data4,
       $scope.dataBase.data5,
       $scope.dataBase.data6,
       $scope.dataBase.data7,
       $scope.dataBase.data8,
       $scope.dataBase.data9,
       $scope.dataBase.data10,
       $scope.dataBase.data11,
       $scope.dataBase.data12]}
    };

    $http.post($rootScope.raiz_ws + "/local/funcao", listProdutos )
     .then(function (response) {
        }); 
    };

Controller em C#
 [HttpPost]
    [Route("funcao")]
    public HttpResponseMessage Gerar(Classe listProdutos)
    {..}

Clase em C#:
public class Classe
{
    public List<CompraeVenda> ListaCompraVenda { get; set; }
    public List<string> ListaMeses { get; set; }

}

A:

Consegui resolver mudando apenas o minha var listProdutos
var listProdutos = {
        ListaCompraVenda: $scope.modelcompraevenda.listProdutos,
        ListaMeses: [$scope.dataBase.data1,
        $scope.dataBase.data2,
        $scope.dataBase.data3,
        $scope.dataBase.data4,
        $scope.dataBase.data5,
        $scope.dataBase.data6,
        $scope.dataBase.data7,
        $scope.dataBase.data8,
        $scope.dataBase.data9,
        $scope.dataBase.data10,
        $scope.dataBase.data11,
        $scope.dataBase.data12]
    };

