Estou tentando enviar uma mensagem da API de nuvem do WhatsApp usando tipos anônimos em c#. O código a seguir funciona bem:
// Request Body
var body = new
{
messaging_product = "whatsapp",
to = "92" + patient.Phone.TrimStart('0'), // Use the entered recipient's phone number
type = "template",
template = new
{
name = "appointment_new",
language = new
{
code = "en"
},
components = new[]
{
new
{
type = "header",
parameters = new[]
{
new
{
type = "text",
text = clinicname??"Appointment"
}
}
},
new
{
type = "body",
parameters = new[]
{
new
{
type = "text",
text = $"test"
}
}
}
}
},
message = "test" // Use the entered message
};
Mas eu quero enviar um arquivo PDF no header usando o mediaId. Então eu faço essa alteração por exemplo:
// Request Body
var body = new
{
messaging_product = "whatsapp",
to = "92" + patient.Phone.TrimStart('0'), // Use the entered recipient's phone number
type = "template",
template = new
{
name = "appointment_new",
language = new
{
code = "en"
},
components = new[]
{
new
{
type = "header",
parameters = new[]
{
new
{
type = "document", //////change
document = new //////change
{
id = mediaId //////change
}
}
}
},
new
{
type = "body",
parameters = new[]
{
new
{
type = "text",
text = $"test"
}
}
}
}
},
message = "test" // Use the entered message
};
Mas o Visual Studio dá erro de sintaxe aqui: No best type found for implicitly-typed array
Quero entender o porquê? Qual é a diferença entre o primeiro código e o segundo? A AI também lança a segunda versão e não tem outras ideias.
O código está reclamando porque você está criando uma matriz de dois tipos anônimos diferentes .
A solução mais simples é dizer a ele como lidar com o fato de que eles são de tipos diferentes. A solução mais simples é:
Dessa forma, em vez de um array de tipos anônimos, você disse "este é um array de qualquer coisa". E você pode colocar quantos tipos anônimos quiser.