0

「最適なオーバーロードされたメソッドの一致に無効な引数があります」というエラーが表示されます

私のコードは、

System.Collections.Generic.List<ConsultantShares> consultantShareList = (Session["ProjectShare"] as List<ConsultantShares>);
        CIService.CIServiceClient client = new CIService.CIServiceClient();
        client.GetConsultantScoreAsync(consultantShareList,this.txtProjectId.Text,this.ddlWorkClass.SelectedValue);
        client.GetConsultantScoreCompleted += new EventHandler<CIService.GetConsultantScoreCompletedEventArgs>(client_GetConsultantScoreCompleted);

エラーリストとして、

Error   196 The best overloaded method match for
 'CIService.CIServiceClient.GetConsultantScoreAsync(InspectionServices.ConsultantShares[], string, string)'
 has some invalid arguments G:\Design Scoring\InspectionEvaluation\Summary.aspx.cs  32  
9   G:\Design Scoring\InspectionEvaluation\


Error   197 Argument 1: cannot convert from 'System.Collections.Generic.List<InspectionServices.ConsultantShares>' 
to 'InspectionServices.ConsultantShares[]'  G:\Design Scoring\InspectionEvaluation\Summary.aspx.cs  32  
40  G:\Design Scoring\InspectionEvaluation\

私は次のものを持っていますが、

namespace CIService

    {
        [GeneratedCode("System.ServiceModel", "4.0.0.0")]
        [DebuggerStepThrough]
        public class CIServiceClient : ClientBase<ICIService>, ICIService
        {
               public void GetConsultantScoreAsync(ConsultantShares[] cs, string targetProjectId, string workclass);
        public void GetConsultantScoreAsync(ConsultantShares[] cs, string targetProjectId, string workclass, object userState);
        }
    }

あなたの提案を願っています

ありがとう

編集:

エラーの取得

Error   30  The type or namespace name 'InventoryProject' does not exist in the namespace 'CIService' (are you missing an assembly reference?)  G:\Design Scoring\InspectionEvaluation\ProjectDetails.aspx.cs   108 23  G:\Design Scoring\InspectionEvaluation\

CIService.InventoryProject invProject = 新しい CIService.InventoryProject();

CIサービス中

 public InventoryProject GetInventoryProjectDetail(string consultantId, string projectId)
        {
            ProjectService prjService = new ProjectService();
            return prjService.GetInventoryProjectDetail(consultantId, projectId);
        }

 public List<InventoryProject> GetProjectsByConsultant(string consultantId, int currentPageNumber, int pageSize)
        {
            ProjectService prjService = new ProjectService();
            return prjService.GetProjectsByConsultant(consultantId, currentPageNumber, pageSize);
        }

CIServiceは私のWCFサービスで、InventoryProject.datasourceは、このwcfプロジェクトでdllが使用されているデータベースマネージャーの他のプロジェクトですが、「inventoryproject」を認識しないのはなぜですか

あなたの助けを願っています

4

1 に答える 1

1

2 つのオプションがあります。最初に.ToList()、パラメーターとしてメソッドに渡す前に配列を呼び出すことができます。2 つ目のオプションは、プロキシの作成中にデフォルトのコレクション タイプを定義できることです (サービス参照の追加)。

ここに画像の説明を入力

エラーが発生する理由は、おそらく指定したサービス参照をSystem.Collection.Generic.ListCollection タイプとして追加したためです。それを配列に変更できます。

于 2013-04-25T06:41:30.443 に答える