Tengo un problema al pasar un objeto anónimo como argumento en un método. Quiero pasar el objeto como en JavaScript. Ejemplo:Pasar un objeto anónimo como argumento en C#
function Test(obj) {
return obj.txt;
}
console.log(Test({ txt: "test"}));
Pero en C#, que arroja muchas excepciones:
class Test
{
public static string TestMethod(IEnumerable<dynamic> obj)
{
return obj.txt;
}
}
Console.WriteLine(Test.TestMethod(new { txt = "test" }));
Excepciones:
- Argumento 1: no se puede convertir de 'AnonymousType # 1' a 'System.Collections .Generico.IEnumerable '
- La mejor coincidencia de método sobrecargado para ' ConsoleApplication1.Test.TestMethod (System.Collect ions.Generic.IEnumerable) ' tiene algunos argumentos no válidos
- 'System.Collections.Generic.IEnumerable' no contiene una definición de 'txt' y ningún método de extensión '.txt' aceptar un primer argumento de tipo' System .Collections.Generic.IEnumerable' se pudo encontrar (¿falta una directiva using o una referencia de ensamblado ?)
¿Por qué estás pasando un objeto anónimo a un método que quiere IEnumerable? hacer que acepte simplemente 'dinámico' – GregRos
@GregRos gracias, solo soy nuevo en lenguajes fuertemente tipados y mis investigaciones me muestran esto ... – user1091156