Почему WebGrid использует динамическое форматирование?

Я работаю с System.Web.Helpers.WebGrid в проекте ASP.NET MVC 3 Razor, и мне сложно понять, почему параметр формата для WebGridColumn - это Func .

Если я создам такой столбец ...

grid.Column(
    format: x => string.Format("{0:d}", x.StartDate)
    );

... Я не получаю строгой типизации в свойстве StartDate . Если я попытаюсь обойти это вот так ...

grid.Column(
    format: (MyObjectType x) => string.Format("{0:d}", x.StartDate)
    );

... Во время выполнения мне скажут, что моя лямбда не может быть приведена к Func . Есть ли способ использовать здесь нединамическую лямбду? Даже если это просто <объект, объект> ?

(Я использую .NET 4.0, а Func должен быть контравариантным на T , но я не понимаю, как ковариация и контравариантность работают с динамическими.)

6
задан Ryan Lundy 5 May 2011 в 17:34
поделиться