Normalement, nous utilisons tous using System.Linq;
et using System.Data.Linq;
par exemple sur le code-behind et attendons que nous pouvons atteindre les membres de ces espaces de noms du code source comme <%= Something.First()%>
mais quand je l'ai écrit, asp.net a dit qu'il ne pouvait pas trouver First()
dans le contexte et je devais ajouter <%@ Import Namespace="System.Linq"
qui avait l'air très bizarre mais ça a marché. Étant donné qu'ils ciblent la même classe, ils ont tous deux besoin d'importer des espaces de noms distincts.Namespace Problème
code-behind:
using System;
using System.Data.Linq;
using System.Linq;
using System.Text
namespace Something
{
class Items : System.Web.UI
{
//...
}
}
mais aussi je dois ajouter le même espace de noms Linq sur la Html Source partie
<%@Import Namespace="System.Linq"%>
Est-ce que je sais quelque chose de mal ou c'est un peu genre de bug dans asp.net. Je pensais que lorsque la page est en train de compiler, asp.net combine ces deux classes et convertit le code source html en classe cs et indique le contrôle dans la hiérarchie Control c= new Control();
.
Merci d'avance.
Ps: Je suis en train d'atteindre par exemple First()
dans Items.aspx et tout ce que je disais au sujet d'une page asp.net qui est Items.aspx
Voulez-vous dire que First() est une méthode définie sur la classe Items derrière cette page? –
Je veux dire que c'est une méthode d'extension de System.Linq mais je ne peux pas l'atteindre parce que j'ai dû le déclarer sur le code source html pour voir les membres. L'importer sur le code-behind ne semble pas fonctionner pour la partie source. – Tarik
Correct. Ils sont compilés séparément. Voir mon commentaire ci-dessous. –