I have a simple extension method on the int type so I can do the following:
string timeLength = 61.ToTime() // timeLength will be "1:01"
This works great in code, but I want to use this extension method in a Repeater Template. When databinding I want to do the following:
<%# Eval("LengthInSeconds").ToTime() %>
That didn't work so I tried:
<%# ((int) Eval("LengthInSeconds")).ToTime() %>
and it still didn't work. The JIT compiler is not seeing my extension method and I do have the proper import statement in the page.
My only idea for solving this is to replace the Eval with a Literal control and call the extension method in the code-behind, but either way, I would still like to know why this isn't working.
Thanks
Looks like I get to answer my own question! Asp.Net was compiling the .aspx,.ascx templates using the .Net 2.0 compiler. I needed to add the following to my web.config to make it work
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
I still have to perform the cast to (int) in the Eval, but that at least makes sense to me.