2013-05-18 66 views
6

私は、Webを設計するためのVisual Studio 2010を使用しています、と私は層型名にアセンブリの明示を指定する方法は?

プログラミングを使用している、私はgidviewとのObjectDataSourceを使用していますが、私はこのexeptionを得る:

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

ここで問題はありますか?

答えて

2

これは、プロジェクト内に同じ名前のクラスが2つあり、通常はコピー&ペーストエラーが原因で発生します。 view1という別のクラスがあるかどうか確認できますか?

これが問題でない場合は、ここに示すように、一時Webファイルをクリアしてみてください: Clearing out temporary asp.net files

+0

あなたの返事ありがとう、私は私のソリューションのすべてでview1という名前の他のクラスがありません! –

+0

一時Webファイルを消去しようとしましたか? – Augusto

10

Search.csはApp_Codeフォルダーの外に提出し、それが動作するかどうかを確認移動してみてください。私は同じ問題を抱えていて、それを動かして、それが働き始める。

+0

私にも働きました。なぜ私は不思議です。 – RazvanR

+0

解決済み問題 –

3

私は同じエラーがありました。私はWebUserControlプロジェクトを作成しました。このプロジェクトのコントロールはcontrol1です。また、私はプロジェクトWebsite1私は私のコントロール1を使用して(プロジェクトのビルドイベントを使用してのコントロール1からウェブサイト1をコピーする)を持っていた。それは正常に働いたが、その後私は私のWebsite1プロジェクトをコピーし、Website2プロジェクトに改名した。 On website2このエラーが発生しました。きれいで、再構築は解決しませんでした。私Website2 \ binフォルダのすべてのファイルを削除し、Website2プロジェクトをビルドします。エラーは解決されました。

+0

これが答えです。問題を理解することは重要です。しかし、それは簡単で簡単な解決法です。 – KannedFarU

0

解決策への参照を追加するときは、そのファイルプロパティのコピーをローカルの "False"にコピーしてください。したがって、ソリューションを構築するときにコピーされず、エラーは発生しません。わたしにはできる。これを試してください。

0

Webサイト/ Webアプリケーションのプロパティを右クリックし、[アセンブリ名]フィールドに目的の名前を設定します。

例:アプリケーションの名前がXYZで、名前空間の名前をcompanyname.dept.XYZとすると、アプリケーションに2つの別々のdllがある可能性があります。 XYZ.dllおよびcompanyname.dept.XYZ.dllこれは競合を引き起こす可能性があります。

関連する問題