AutoMapper с синтаксисом c # 2.0

Я пытаюсь создать настраиваемое сопоставление с помощью AutoMapper, но не могу использовать синтаксис 3.0 с лямбда-выражениями. Как преобразовать этот код 3.0 в 2.0?

Mapper.CreateMap<MyClass, MyDto>()
 .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.CompanyName))

Изменить:

Поскольку лучшего решения не было, теперь мы используем vs2008 на одной рабочей станции, чтобы сделать эти сопоставления и построить dll. Я надеюсь, что скоро мы перейдем на vs2010.


person Morri    schedule 12.02.2010    source источник


Ответы (1)


РЕДАКТИРОВАТЬ: Джимми упомянул в комментариях, что AutoMapper использует деревья выражений. Это не немедленно исключает возможность использования .NET 2.0 (вы можете использовать реализацию System.Core в Mono), но если вы не можете даже использовать C # 3, вам придется построить все деревья выражений вручную, что будет огромной болью.

Вам категорически запрещено использовать .NET 3.5 и C # 3?

person Jon Skeet    schedule 12.02.2010
comment
Раньше было возможно использовать LINQ в VS2005 - см. c-sharpcorner. com / UploadFile / nsatheeshk / Linq06302006030119AM / (хотя не уверен, что это все еще поддерживается) - person Steve; 12.02.2010
comment
Я застреваю на делегате (Bar opt) {return opt.MapFrom (... Что такое Bar и как он имеет метод .MapFrom? - person Morri; 12.02.2010
comment
@Morri: Bar будет любым типом opt в исходном лямбда-выражении. - person Jon Skeet; 12.02.2010
comment
@Jon Skeet: я использую руководство из automapper.codeplex.com/, и он не сообщает, какой тип opt. - person Morri; 12.02.2010
comment
@Morri: Я предлагаю вам получить код, работающий в VS2008 (например, в бесплатной версии Express), который позволит вам поэкспериментировать с ним - и наведите курсор на параметр, чтобы увидеть его тип. - person Jon Skeet; 12.02.2010
comment
@Jon AutoMapper использует выражения для строго типизированного отражения, поэтому вы не можете перейти по маршруту анонимного делегата. Метод ForMember принимает Expression ‹Func‹ TSource, TMember ››, но не Func ‹TSource, TMember›. - person Jimmy Bogard; 18.02.2010