2013-05-18 7 views
6

Ich bin mit dem Visual Studio 2010 für eine Web-Design, und ich habe die SchichtWie spezifiziert man die Assembly Explicity im Typnamen?

Programmierung, ich gidview und Object bin, aber ich bekomme diese Ausnahme:

"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." 

Ich habe meine Code hier:

das ist mein web.aspx:

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

     </asp:ObjectDataSource> 

und dies ist die search.cs Datei in BAL-Ordner in APP_CODE:

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; 
     } 
    } 

wo ist das Problem?

Antwort

2

Dies geschieht, wenn im Projekt zwei Klassen mit demselben Namen vorhanden sind, normalerweise aufgrund eines Kopier- und Einfügefehlers. Können Sie überprüfen, ob Sie eine andere Klasse namens view1 woanders haben?

Wenn dies nicht das Problem ist, versuchen Sie, temporäre Internetdateien zu klären, wie hier gezeigt: Clearing out temporary asp.net files

+0

Vielen Dank für Ihre Antwort, aber ich habe keine andere Klasse namens view1 in all meiner Lösung !! –

+0

Haben Sie versucht, die temporären Webdateien zu löschen? – Augusto

10

Versuchen Sie, die Search.cs aus dem App_Code-Ordner-Datei zu bewegen und sehen, ob es funktioniert. Ich hatte das gleiche Problem, und ich zog es aus und es fing an zu arbeiten.

+0

Arbeitete auch für mich. Ich wundere mich warum. – RazvanR

+0

Gelöst meine Ausgabe –

3

Ich hatte den gleichen Fehler. Ich erstellte WebUserControl Projekt mit Steuerelement namens control1. Auch ich hatte Projekt Website1, wo ich meine control1 (mit Projekt Build-Ereignis zu kopieren control1 bis Website1). Es funktionierte gut, aber dann kopierte ich meine Website1 Projekt und in Website2 Projekt umbenannt. Auf website2 Ich habe diesen Fehler erhalten. Sauber, Wiederaufbau hat nicht gelöst. I löschte alle Dateien in Website2 \ bin Ordner und bauen Website2 Projekt. Fehler wurde behoben.

+0

Dies sollte die Antwort sein. Das Problem zu verstehen ist wichtig. Aber so ist eine kurze und einfache Lösung. – KannedFarU

0

Wenn Sie der Lösung einen Verweis hinzufügen, müssen Sie die Dateieigenschaften auf "False" kopieren. Es wird also nicht kopiert, wenn wir die Lösung erstellen, und wir werden den Fehler nicht erhalten. Für mich geht das. Bitte versuchen Sie es.

0

Klicken Sie mit der rechten Maustaste auf die Eigenschaft Website/Webanwendung und setzen Sie das Feld Assemblyname auf den gewünschten Namen.

Beispiel: Wenn die Anwendung den Namen XYZ hat und die Namespacebenennung companyname.dept.XYZ verwendet, kann die Anwendung zwei separate DLLs haben. XYZ.dll und companyname.dept.XYZ.dll, die Konflikte verursachen können.

Verwandte Themen