Какой самый чистый способ визуализации результатов метода при привязке данных? - PullRequest
0 голосов
/ 10 июня 2009

Конечно, лучший способ - преобразовать метод в свойство. Но я не могу сделать это здесь -

У нас есть API от кого-то другого, и мы добавили метод расширения к одному из объектов. Нам нужно в строке, которую этот метод возвращает в ситуации привязки данных (GridView).

Не похоже, что мы можем добавить расширение свойство (мужик, это было бы очень мило ...), поэтому у меня есть этот метод, и я хочу, чтобы самый чистый способ визуализации это в привязке данных:

Пока я могу сделать это с помощью свойства:

<%# Eval("MyProperty") %>

Я должен сделать это с помощью метода:

<%# ((MyClass)Container.DataItem).MyExtensionMethod() %>

Вот как я это делал в прошлом, но есть ли способ чище? Я не могу изменить класс (это не мой) и не могу добавить свойство расширения, поэтому я застрял в этом методе.

1 Ответ

0 голосов
/ 10 июня 2009

Я думаю, вы могли бы написать свой собственный метод, который взял бы объект Container и имя метода в виде строки, а затем использовал отражение для вызова метода. В итоге это будет выглядеть примерно так:

<%# Call(Container, "MyExtensionMethod") %>

Я сомневаюсь, что вы можете стать намного чище, поскольку Eval - это особый случай, который переписывается во время компиляции.

...