在数据绑定时呈现方法结果的最简洁方法是什么?

时间:2009-06-10 15:17:49

标签: asp.net data-binding extension-methods

当然,最好的方法是将方法转换为属性。但我不能这样做 -

我们有来自其他人的API,我们已经为其中一个对象添加了扩展方法。我们需要在字符串中此方法在数据绑定情况下返回(GridView)。

似乎我们不能添加扩展属性(男人,本来真的很好......),所以我有这个方法,我想要最干净的方法来在数据绑定中呈现它:

虽然我可以使用属性执行此操作:

<%# Eval("MyProperty") %>

我必须用一种方法来做到这一点:

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

这是我过去的做法,但有比这更清洁的方法吗?我不能改变类(它不是我的),我不能添加扩展属性,所以我坚持使用这种方法。

1 个答案:

答案 0 :(得分:0)

我猜你可以编写自己的方法,将Container对象和方法的名称作为字符串,然后使用反射来调用方法。它最终看起来像这样:

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

我怀疑你能比这更清洁,因为Eval是一个在编译时重写的特殊情况。