Я работаю с System.Web.Helpers.WebGrid
в проекте ASP.NET MVC 3 Razor и не могу понять, почему параметр формата для WebGridColumn
равен Func<dynamic, object>
.
Если я создаю столбец, подобный этому ...
grid.Column(
format: x => string.Format("{0:d}", x.StartDate)
);
... Я не получу строгой типизации для свойства StartDate.Если я попытаюсь обойти это так ...
grid.Column(
format: (MyObjectType x) => string.Format("{0:d}", x.StartDate)
);
... Во время выполнения мне говорят, что моя лямбда не может быть приведена к Func<dynamic, object>
.Есть ли способ, как я могу использовать нединамическую лямбду здесь?Даже если это просто <object, object>
?
(я нахожусь в .NET 4.0, а Func<in T, out TResult>
должен быть контравариантным по отношению к T, но я не совсем понимаю, как ковариация и контравариантность работают с динамикой.)