web-dev-qa-db-fra.com

Impossible d'appeler la classe App_Code à partir d'un code-behind

J'ai une classe dans un fichier qui se trouve dans le dossier "App_Code". Je peux l'utiliser dans un fichier "aspx" mais pas à partir d'un fichier code-behind. Comment le rendre visible pour un code-behind?

REMARQUE: il s'agit d'ASP.Net sur Mono et j'écris les classes directement, sans utiliser de IDE pour les compiler

Mes dossiers:

FICHIER ASPX (testappcode.aspx)

<%@ Page language="c#" src="TestAppCode.aspx.cs" Inherits="TestAppCode.TestAppCode" AutoEventWireup="true" %>
<html>
  <head>
    <title>Test App_Code Folder</title>
  </head>
  <body>
    <form id="contactForm" runat="server">
    <asp:TextBox id="Name" runat="server" ></asp:TextBox>
    <asp:TextBox id="Age" runat="server" ></asp:TextBox>
    <asp:Button ID="Submit" runat="server" Text="Submit" onclick="SubmitForm" />
    </form>
  </body>
<html>

CODE DERRIÈRE (TestAppCode.aspx.cs)

using System;
using System.Web.UI.WebControls;

namespace TestAppCode
{
    public class TestAppCode : System.Web.UI.Page
    {
    protected void SubmitForm(object sender, EventArgs e)
    {
        //It fails here with the error: CS0246: The type or namespace name
        //`MyAppCodeClass' could not be found. Are you missing a using
        //directive or an Assembly reference?
        MyAppCodeClass m = new MyAppCodeClass();
    }
    }
}

APP_CODE CLASS (App_Code/MyAppCodeClass.cs)

public class MyAppCodeClass
{
         public MyAppCodeClass() {}
}

J'ai essayé de lui donner un espace de noms, mais cela ne résout pas le problème.

23
Don Rhummy

Changez votre classe 'Build Action compiler.

enter image description here

55
Win