L'appel est ambigu entre les méthodes suivantes ou des propriétés (bug??)
- Créer un nouveau ASP.NET Web MVC
Application - Créer un ASP.NET App_Code
Dossier -
À l'intérieur de la nouvelle
dossier, créez une classe avec un
Méthode D'Extension. Par exemple:static public class BugMVCExtension { public static int ToInt(this string str) { return Convert.ToInt32(str); } }
-
Choisir une Vue et d'essayer d'utiliser cette nouvelle Méthode d'Extension
Vous obtiendrez cette Exception:
CS0121: The call is ambiguous between the following methods or properties:
'*MvcApplication1.App_code.BugMVCExtentions.ToInt(string)*' and
'*MvcApplication1.App_code.BugMVCExtentions.ToInt(string)*'
Personne ici n'a plus d'informations à ce sujet?
Est-ce mal pour créer un App_code dans un ASP.NET MVC(?) Les Applications Web?
Vous devez vous connecter pour publier un commentaire.
MVC projets créés dans Visual Studio utilisation de l'application Web modèle de projet par défaut.
App_Code
est principalement utilisé par le site Web de modèle. Je suggère la lecture sur les différences entre eux (une autre question couvre ce et il est également largement couverte sur MSDN). Si vous ajoutez un fichier sourceApp_Code
dans un projet d'application Web, Visual Studio va compiler une DLL (car il est inclus dans le projet) et la met dans/bin
. Au moment de l'exécution, la ASP.NET compilateur voitApp_Code
et essaie de compiler le source dans une autre assemblée. En conséquence, deux classes distinctes avec des noms identiques existent dans les deux montages différents et lorsque le ASP.NET analyseur essaie de compiler le.aspx
fichier, il va échouer à en choisir un.Mise à jour:
Sont ces deux (méthode d'extension et de la classe que vous soyez à l'instanciation) en un seul .cs fichier? Sinon, probablement, la classe que vous soyez à l'instanciation est dans un fichier source avec Action de Construire (clic droit sur le fichier, cliquez sur propriétés) à Contenu qui indique à Visual Studio pour sauter dans le processus de construction (dans ce cas, vous ne serez pas en mesure de le référencer dans les autres .cs fichiers qui sont à l'extérieur de
App_Code
mais vous serez capable de l'utiliser dans la vue, puisqu'il sera seulement venir à la vie au moment de l'exécution.) Si l'action de construire est Compiler, vous obtiendrez une erreur. La question n'est certainement pas spécifique à des méthodes d'extension. Visual Studio semble être assez intelligent pour elle de Contenu par défaut pour les fichiers source a ajouté àApp_Code
.App_Code
est compilé à exécution.Ne pas utiliser le dossier app_code.
Utiliser n'importe quel autre nom de dossier. C'est à dire. appCode ou ApplicationsCode.
Le nom dans le dossier implique une compilation à l'exécution qui conduit à la duplication de code.
J'ai résolu le problème en plaçant le .cs fichier en dehors du dossier App_Code, dans la racine de l'Application Web.
J'ai résolu en plaçant dans le fichier de l'extension de l'espace de nom complet du dossier.
espace de noms Aides
{
espace de noms xxx.yyy.zzz.Les aides
{