Le type spécifié dans la propriété TypeName de ObjectDataSource n'a pas pu être trouvé

En raison des exigences, tous les site web .cs fichiers sont stockés dans le répertoire App_Code et compilé dans App_Code.dll.
Il y a une erreur lorsque je tente d'accéder à une page spécifique du site web.

Description: An unhandled exception occurred during the execution
of the current web request. Please review the stack trace for more
information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The type
specified in the TypeName property of ObjectDataSource
'DataSourceSubmissionList' could not be found.

J'ai un contrôle Gridview qui est peuplée par ObjectDataSource. Le Code est ci-dessous:

/layouts/Portail/Entreprise/Application/code.ascx:

<%@ Control Language="c#" AutoEventWireup="true"
CodeFile="~/layouts/Portal/Company/Application/code.ascx.cs"
Inherits="Project.WebUserControls.myapplications.sublayout" %>

<dx:ASPxGridView ID="ASPxGridView1"
  runat="server"
  DataSourceID="DataSourceSubmissionList"
  KeyFieldName="SubmissionId"
</dx:ASPxGridView>

<asp:ObjectDataSource
  ID="DataSourceSubmissionList"
  runat="server"
  TypeName="Project.WebUserControls.myapplications.sublayout">
</asp:ObjectDataSource>

/layouts/Portail/Entreprise/Application/code.ascx.cs:

namespace Project.WebUserControls.myapplications
{  
    public partial class sublayout: System.Web.UI.UserControl 
    {
    }
}

Lorsque j'utilise cette ligne dans le code.fichier ascx pour obtenir le complet typename...

<% Response.Write(typeof(Project.WebUserControls.myapplications.sublayout).AssemblyQualifiedName); %>

De l'impression sur la page.

Project.WebUserControls.myapplications.sublayout, App_Web_oiftguk4,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

Cependant, l'utilisation de ce type exact (du Projet.WebUserControls.myapplications.sublayout) dans l'ObjectDataSource TypeName résultats dans l'erreur.

J'ai traversé beaucoup de questions à propos de ce message d'erreur. J'ai lu que la solution pourrait être en utilisant à la fois l'espace de noms et le nom de l'assembly dans le Nom du type de propriété, comme ceci. Mais je ne peux pas le faire parce que le code est compilé dynamiquement et le nom de l'assembly ne cesse de changer.

Une autre chose - cette erreur se produit uniquement lorsque CodeFile approche est utilisée. Si je passe à CodBehind, pas de problème.

Quelle pourrait être la raison de ce comportement?

  • Pourquoi sont-ils tous .cs fichiers compilés dans App_Code, et est-il un moyen de changer cela?
  • Clarification, tous .cs, les fichiers sont compilés dans App_Code.dll. Ascx.cs fichiers ne sont pas compilées dans la dll. Une fois le déploiement se passe, dossier App_Code et des mises en page (.ascx + ascx.cs) sont déployés sur le serveur. Pourquoi? Parce que c'est une obligation et je ne peux pas faire quoi que ce soit en tant que développeur.
InformationsquelleAutor afaf12 | 2013-12-02