由于需要,所有网站.cs文件都存储在App_Code目录中,并编译成App_Code.dll。当我试图访问网站的一个特定页面时,出现了一个错误。
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.我有一个Gridview控件,它由ObjectDataSource填充。代码如下:
/layouts/Portal/Company/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/Portal/Company/Application/code.ascx.cs:
namespace Project.WebUserControls.myapplications
{
public partial class sublayout: System.Web.UI.UserControl
{
}
}当我在code.ascx文件中使用这一行获得完全限定的类型名时.
<% Response.Write(typeof(Project.WebUserControls.myapplications.sublayout).AssemblyQualifiedName); %>它会在页面上打印这个。
Project.WebUserControls.myapplications.sublayout, App_Web_oiftguk4,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null但是,在ObjectDataSource TypeName中使用此类型的TypeName会导致错误。
关于这个错误信息,我已经经历了许多问题。我已经看到,可能的解决方案可能是在TypeName属性like this中同时使用名称空间和程序集名称。但是我不能这样做,因为代码是动态编译的,而且程序集名称一直在变化。
另一件事--只有在使用CodeFile方法时才会发生此错误。如果我转到CodBehind,没问题。
这种行为的原因是什么?
发布于 2013-12-04 15:27:53
我通过在TypeName期间初始化Page_Init属性而不直接在ObjectDataSource中指定TypeName来解决这个问题:
/layouts/Portal/Company/Application/code.ascx.cs:
public void Page_Init(object o, EventArgs e)
{
DataSourceSubmissionList.TypeName = this.GetType().AssemblyQualifiedName;
}/layouts/Portal/Company/Application/code.ascx:
<asp:ObjectDataSource
ID="DataSourceSubmissionList"
runat="server"
</asp:ObjectDataSource>https://stackoverflow.com/questions/20328819
复制相似问题