Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The call is ambiguous between the following methods or properties (bug??)

MVC projects created in Visual Studio use Web application project model by default. App_Code is mostly used by Web site model. I suggest reading about differences between them (another question covers this and it's also covered extensively on MSDN). If you add a source file to App_Code in a Web application project, Visual Studio will compile it to a DLL (since it's included in the project) and puts it in /bin. At run time, the ASP.NET compiler sees App_Code and tries to compile the source in a different assembly. As a consequence, two separate classes with identical names will exist in two different assemblies and when the ASP.NET parser tries to compile the .aspx file, it'll fail to choose one.

Update:

Are those two (extension method and the class you're instantiating) in a single .cs file? Otherwise, probably, the class you're instantiating is in a source file with Build Action (right click on file, click properties) set to Content which tells Visual Studio to skip it in the build process (in that case, you won't be able to reference it in other .cs files that are outside App_Code but you'll be able to use it in the view since it'll only come to life at run time.) If the build action is Compile, you'll get an error. The issue is definitely not specific to extension methods. Visual Studio seems to be smart enough to set it to Content by default for source files added to App_Code.


Do not use the app_code folder.

Use any other folder name. IE. appCode or ApplicationsCode.

The name in the folder implies some compilation at runtime that leads to have duplicated code.


I solved the problem by placing the .cs file outside the App_Code folder, in the root of the Web Application.


I solved by placing in the file of extension of the full namespace of the folder.

namespace Helpers {

namespace xxx.yyy.zzz.Helpers {