关于在aspx文件里使用扩展方法,代码报错:
在以下方法或属性之间的调用不明确:“XXXX.StringUtility.ClearInjection(string, bool)”和“XXXX.StringUtility.ClearInjection(string, bool)”
我这个函数并没有重载不同类型的参数,而且上面写的两个函数都是一样的参数
我在aspx页面已经声明了类库:
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Xml.Linq" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ import namespace="XXXX" %>
使用方法也是:
<%=str.ClearInjection(false)%>
我.cs文件中,这个函数使用是没有问题的我按照论坛中帖子(http://bbs.csdn.net/topics/320070153)的解决方法方法做的,还是不行.net版本是4.0
希望能都得到指点..net 扩展方法 aspx

解决方案 »

  1.   

    加上具体命名空间试试
    <%=str.ClearInjection(false)%>=》
    <%=XXXX.StringUtility.ClearInjection(str, false)%>
      

  2.   

    我新建了一个页面试了下
    没有任何问题,楼主肯定是两个命名冲突了
    另外我aspx没有引用任何命题空间,依然可以用扩展方法的,没有任何问题
      

  3.   

    自己解决了,原因是我把扩展方法的代码文件放到了App_Code里面,不知道怎么的他就变得有两份DLL了
    我把它放到其他类库再引用就可以了,我最好还重启了机器清空了Temporary ASP.NET Files\root文件夹才可以
      

  4.   

    尽管解决了,但我仍然想知道为什么,为什么放到App_Code里面就不行呢?
    求回复
      

  5.   

    你放到Web项目的App_Code代码里面和类库里面会被编译成两个不同的类,因此会产生冲突。
      

  6.   

    你放到Web项目的App_Code代码里面和类库里面会被编译成两个不同的类,因此会产生冲突。

    不,原本类库里面是没有的,只有App_Code里面有,但是死活都不能在ASPX页面里面使用,总是报错,但是我把App_Code里面的删除了,再它放到其中一个类库里面,然后清除临时文件夹,就可以调用了
    报错的时候我确定项目里(包括调用的其他类库)只有一份这个函数的代码,而且它在cs文件中都能够正常调用的