如何在类型名称中显式指定程序集?

时间:2013-05-18 08:00:37

标签: c# asp.net .net-assembly

我使用visual studio 2010设计网页,我使用了图层

编程,我正在使用gidview和objectdatasource,但我得到了这个例子:

"The type 'WebApplication4.view1' is ambiguous: it could come from assembly   
 'C:\Users\EHSAN\AppData\Local\Temp\Temporary ASP.NET 
  Files\root\d04444bc\d654bde6\App_Code.i0fp6yrj.DLL' or from assembly 
  'C:\Users\EHSAN\Documents\Visual Studio 
  2010\Projects\WebApplication4\WebApplication4\bin\WebApplication4.DLL'. Please 
  specify the assembly explicitly in the type name."

我把我的代码放在这里:

这是我的web.aspx:

<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="WebApplication4.view1"
        SelectMethod="Search" OldValuesParameterFormatString="original_{0}" >

      </asp:ObjectDataSource>

这是APP_Code中BAL文件夹中的search.cs文件:

namespace WebApplication4
{
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Linq;
    using System.Data;
 public class view1 : System.Web.UI.Page
    {
        public view1()
        { }

        public List<person> Search()
        {
            List<person> persons = new List<person>();
            DataSet ds = PersonsDB.Search();

            foreach (DataRow row in ds.Tables[0].Rows)
            {

                persons.Add(new person((String)row["id"], (String)row["nam"], (String)row["family"], (String)row["namepedar"], (String)row["shshenas"], (String)row["codemelli"]));
            }


            return persons;
        }
    }

问题出在哪里?

5 个答案:

答案 0 :(得分:10)

尝试将Search.cs文件移出App_Code文件夹,看看它是否有效。我有同样的问题,我把它移出去,它开始工作。

答案 1 :(得分:3)

我有同样的错误。我创建了 WebUserControl 项目,其中包含名为 control1 的控件。我还有项目 Website1 ,其中我使用了我的control1(使用项目构建事件将 control1 复制到 Website1 )。它工作正常,但后来我复制了 Website1 项目并重命名为 Website2 项目。在 website2 我收到此错误。干净,重建没有解决。我删除了Website2 \ bin文件夹中的所有文件并构建了 Website2 项目。错误解决了。

答案 2 :(得分:2)

当项目中有两个具有相同名称的类时,通常会由于复制和粘贴错误而发生这种情况。 你能检查一下在其他地方是否还有其他名为view1的课程吗?

如果这不是问题,请尝试清理临时Web文件,如下所示: Clearing out temporary asp.net files

答案 3 :(得分:0)

当您添加对解决方案的引用时,请将该文件属性复制到本地为&#34; False&#34;。所以当我们构建解决方案时它不会被复制,我们也不会得到错误。这个对我有用。请试试这个。

答案 4 :(得分:0)

右键单击网站/ Web应用程序属性,并使用目标名称设置程序集名称字段。

例如:如果应用程序命名为XYZ并使用命名空间命名为companyname.dept.XYZ,则应用程序可能有2个单独的dll。 XYZ.dllcompanyname.dept.XYZ.dll可能会导致冲突。