解决vs2005,ASP.NET2.0自定义命名空间问题!
解决vs2005,ASP.NET2.0自定义命名空间问题!
大家知道,在asp.net1.1,vs2003时,我们自定以类默认是包含在和我们的项目同名的命名空间中的,
可到了.net2.0&vs2005,新建的网站项目取消了命名空间,这样会带来很多不便,例如我们的两个项目都包含了default.aspx,和他们对应的类都是_default,这样,如果办这两个项目发布到一个web应用程序中的时候,就会出现错误,因为有两个_default类存在。
那么问题如哈解决呢,可以参考vs2003的做法,把项目放在一个自定义的命名空间中,于是就尝试这样的代码,
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace mynamespace
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
可在vs2005中却无法 通过编译,提示有错误。而且莫名其妙。。。
错误 1 “ASP.default_aspx.GetTypeHashCode()”: 没有找到适合的方法来重写 c:\WINDOWS\ Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\2.2\ae2ec4c2\e4448a31\App_Web_whwwuhjt.0.cs 289
错误 2 “ASP.default_aspx.ProcessRequest(System.Web.HttpContext)”: 没有找到适合的方法来重写 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ Temporary ASP.NET Files\2.2\ae2ec4c2\e4448a31\App_Web_whwwuhjt.0.cs 293
错误 3 “ASP.default_aspx”不会实现接口成员“System.Web.IHttpHandler.IsReusable” c:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\2.2\ae2ec4c2\e4448a31\App_Web_whwwuhjt.0.cs 129
错误 4 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。 J:\个人\www\webservices\2.2\Default.aspx.cs 13 33 J:\\2.2\
这是怎么回事呢???
后来笔者发现,default.aspx的开头是这样的,
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
会不会是这里出了问题,是不是也应该在这里指定命名空间,于是笔者把它改为
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="mynamespace._Default" %>
结果顺利通过编译。
问题终于解决了。
大家知道,在asp.net1.1,vs2003时,我们自定以类默认是包含在和我们的项目同名的命名空间中的,
可到了.net2.0&vs2005,新建的网站项目取消了命名空间,这样会带来很多不便,例如我们的两个项目都包含了default.aspx,和他们对应的类都是_default,这样,如果办这两个项目发布到一个web应用程序中的时候,就会出现错误,因为有两个_default类存在。
那么问题如哈解决呢,可以参考vs2003的做法,把项目放在一个自定义的命名空间中,于是就尝试这样的代码,
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace mynamespace
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
可在vs2005中却无法 通过编译,提示有错误。而且莫名其妙。。。
错误 1 “ASP.default_aspx.GetTypeHashCode()”: 没有找到适合的方法来重写 c:\WINDOWS\ Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\2.2\ae2ec4c2\e4448a31\App_Web_whwwuhjt.0.cs 289
错误 2 “ASP.default_aspx.ProcessRequest(System.Web.HttpContext)”: 没有找到适合的方法来重写 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ Temporary ASP.NET Files\2.2\ae2ec4c2\e4448a31\App_Web_whwwuhjt.0.cs 293
错误 3 “ASP.default_aspx”不会实现接口成员“System.Web.IHttpHandler.IsReusable” c:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\2.2\ae2ec4c2\e4448a31\App_Web_whwwuhjt.0.cs 129
错误 4 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。 J:\个人\www\webservices\2.2\Default.aspx.cs 13 33 J:\\2.2\
这是怎么回事呢???
后来笔者发现,default.aspx的开头是这样的,
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
会不会是这里出了问题,是不是也应该在这里指定命名空间,于是笔者把它改为
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="mynamespace._Default" %>
结果顺利通过编译。
问题终于解决了。
喜欢请赞赏一下啦^_^