Извините, если это дубликат, но я не могу его найти.Как я могу получить доступ к объектам в моем списке <dynamic>, когда они передаются в действие <T>?
Вот сущность моей проблемы. Давайте предположим, что у меня есть List<T>
содержащие динамические объекты:
var collection = new List<dynamic>
{
new { Foo = 1, Bar = "Test Text..."},
new { Foo = 2, Bar = "Test Text #2..."},
new { Foo = 3, Bar = "Test Text #3..."},
};
Теперь представьте, что мы хотим, чтобы перебрать эту коллекцию, и пройти каждый dynamic
к Action<T>
. В частности, в моем случае мне нужно передать свои объекты в вызов Parallel.Foreach
. Я смог построить следующий код, и приложение может правильно построить.
Parallel.ForEach(collection, (s) =>
{
Console.WriteLine("Success!");
});
Конечно, это бесполезно, пока мы не применим параметр. Мне нужно сделать доступ к параметру s
в лямбда.
Что-то вроде этого:
Parallel.ForEach(collection, (s) =>
{
Console.WriteLine("Foo = {0}, Bar = {1}", s.Foo, s.Bar);
});
Однако, когда я пытаюсь написать такой код, который я получаю ошибку VS заявив:
одного или нескольких типов, необходимых для составления динамического выражения не может быть найден , Вам не хватает ссылки?
Как я могу получить доступ к своему динамическому объекту из моего выражения лямбда?
Код, который вы показали, компилируется и работает отлично. Вам нужно будет привести пример, который может воспроизвести проблему. – Servy
Если это происходит через сборки, это не сработает. – krillgar
@krillgar, это не так. Все в рамках одного и того же метода. – RLH