Передача анонимного объекта в качестве аргумента в C#

У меня проблема с передачей анонимного объекта в качестве аргумента метода. Я хочу передать объект, как в JavaScript. Пример:

function Test(obj) {
    return obj.txt;
}
console.log(Test({ txt: "test"}));

Но в C#, он выдает много исключений:

class Test
{
    public static string TestMethod(IEnumerable<dynamic> obj)
    {
        return obj.txt;
    }
}
Console.WriteLine(Test.TestMethod(new { txt = "test" }));

Исключения:

  1. Аргумент 1: невозможно преобразовать из 'AnonymousType#1' в 'System.Collections.Generic.IEnumerable'
  2. Лучшее соответствие перегруженного метода для 'ConsoleApplication1.Test.TestMethod(System.Collections.Generic.IEnumerable)' имеет некоторые недопустимые аргументы
  3. 'System.Collections.Generic.IEnumerable' не содержит определение для 'txt' и нет метода расширения 'txt', принимающего первый аргумент типа «System.Collections.Generic.IEnumerable» может быть найден (вам не хватает директивы using или сборки ссылка?)
15
задан Peter Mortensen 8 July 2012 в 15:47
поделиться