在我们的.aspx页面中,我们有很多代码:
<%= CType(GetLocalResourceObject("key"), String)) %>
我想在我们的.aspx视图中添加一个扩展方法,允许我这样做:
<%= GetLocalResourceString("key") %>
但代码无效:
Imports System.Runtime.CompilerServices
Imports System.Web.UI
Module Extensions
<Extension()>
Public Function GetLocalResourceString(ByVal control as TemplateControl,
ByVal resourceKey as String) as String
Return CType(control.GetLocalResourceObject(resourceKey)), String)
End Sub
End Module
根据Intellisense,问题是GetLocalResourceObject不作为System.Web.UI.TemplateControl对象的方法存在。
但是,当我在MSDN上查看this page时,它就在那里。
我做错了什么?扩展方法应该在不同的对象上吗?我已经尝试过其他人并且具有相同的Intellisense / build错误。
答案 0 :(得分:0)
GetLocalResourceObject受到保护,因此只能从页面内部调用。
我发布了一个类似的问题,看看是否有人知道如何在网页外打电话。
我尝试创建一个继承了Page对象的类,然后在内部公开一个调用GetLocalResourceObject的方法。我无法让它工作,因为当你传递ME /这时你没有引用一个Page对象。
这是我的类似问题: Is there a way to move a call to ASP GetLocalResourceObject to a external static/shared method?