2009-06-10 72 views
0

當然,最好的方法是將該方法轉換爲屬性。但我不能這樣做 -數據綁定時呈現方法結果的最簡潔方法是什麼?

我們有一個來自其他人的API,並且我們向其中一個對象添加了擴展方法。我們需要字符串,這個方法返回一個數據綁定的情況(一個GridView)。

似乎我們不能添加擴展屬性(男人,這真的很不錯......),所以我有這種方法,並且我想用最簡潔的方式將其呈現在數據中 - 結合:

<%# Eval("MyProperty") %> 

我有一個方法來做到這一點:

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

雖然我可以用一個屬性來完成這個我過去是如何做到的,但是有沒有比這更簡潔的方法?我不能改變類(它不是我的),我不能添加擴展屬性,所以我堅持使用這種方法。

回答

0

我想你可以編寫自己的方法,將Container對象和方法的名稱作爲字符串,然後使用反射來調用該方法。它會是這個樣子到底:

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

我懷疑你可以得到比這更清潔,因爲Eval是在編譯時改寫的一個特例。

相關問題