MVC扩展方法被加载两次

时间:2012-08-18 01:22:31

标签: vb.net model-view-controller extension-methods

这是我的扩展方法:

Public Module HtmlExtensions System.Runtime.CompilerServices.Extension Public Function ReverseMapPath(ByVal html As HtmlHelper, ByVal path As String) As String Dim appPath = HttpContext.Current.Server.MapPath("~") Dim res As String = String.Format("{0}", path.Replace(appPath, "/").Replace("\", "/")) Return res End Function End Module 我的web.config有一个我的命名空间的条目

一切都很好。我开始向项目添加更多代码,现在我得到一个错误,看起来我正在加载扩展方法两次,但我无法弄清楚原因。错误是: path.page.vbhtml(9): error BC30521: Overload resolution failed because no accessible 'FunctionName' is most specific for these arguments: Extension method 'Public Function FunctionName(path As String) As String' defined in 'namespace.Extensions.HtmlExtensions': Not most specific. Extension method 'Public Function FunctionName((path As String) As String' defined in 'namespace.Extensions.HtmlExtensions': Not most specific.

我不明白为什么这只是悄悄上升。显然,我改变了一些东西,但撤消一切都没有用。该错误似乎更多地落后于.net框架。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我刚遇到这个问题。如果您阅读CrazyTim评论的链接,问题就来自VS在项目中添加引用给自己。

如果您遇到此问题,VS可能会在您的项目中添加一个引用给自己。删除参考,你下雨了。

答案 1 :(得分:1)

看起来这是名称空间问题。我的扩展类将Global.ProjectName作为命名空间。一旦我改变了一切都有效。由于命名空间,它必须加载两次。