2016-11-11 10 views
0

WebサービスでWindowsフォームを使用し、この問題に直面しています。 int []をintの配列に変換できません。私のWindowsフォームで のint []のように怒鳴るのWebサービスと私のコードに渡すトリング: Webサービスコード:WindowsフォームからWebサービスへの配列を使用

public class WebService1 : System.Web.Services.WebService 
{  
    [WebMethod] 
    public int plus(int [] x) 
    { 
     int y=x[0] + x[1]; 
     return y; 
    } 
} 

や窓には、コードを形成している。

private void button1_Click(object sender, EventArgs e) 
     { 
      int[] x = new int [2]; 
      x[0] = 1; 
      ServiceReference1.WebService1SoapClient c = new ServiceReference1.WebService1SoapClient();     
      c.plus(x); 
     } 

私は前にServiceReferenceを追加してくださいそしてOKですが、 "c.plus(x)"の行にエラーがあります。 int []をintの配列に変換できません。 私はc.plus(x.ToList())を追加しようとしました。同じエラーです。 サービス参照を設定し、コレクションタイプをgeneric.listに変更しようとしましたが、同じエラーが発生しました。 提案がありますか?

+0

を助けることはできますか? –

+0

古い(2008年以前の)ASMXサービスを作成しましたが、サービス参照ボタンを使用してWS-I互換サービスで動作するプロキシを作成しました。当時、WSDLとXSDは非常に異なっていました。古いスタイルのプロキシを追加するには、 'Add Web Reference'ボタンを使う必要があります。ただし、WCFサービスを作成することをお勧めします。互換性のないサービスに対処する必要がある場合、あなたのサービスのユーザーは面白くないでしょう。 –

+0

ASMXサービスはメンテナンスモードです。新しい機能はなく、バグはまれにしか修正されません。 –

答えて

0

あなたが代わりにサービス参照のWeb参照を追加する必要があり、記事は、なぜあなたは(非常に互換性がない)古いASMXサービスの代わりに、WCFサービスを作成しているあなたに

http://www.c-sharpcorner.com/blogs/how-to-use-a-web-service-in-windows-form-application1

+0

この記事は単純に間違っています.WebFを使用して.NETで古代ASMXサービスではなくWebサービスを作成します。あなたはWCFサービスの代わりにASMXサービスを構築したため、なぜ* OPがWeb参照を使用すべきか説明しません。 OPは、* WS-I互換の任意のWebサービスで動作する同じ問題を抱えています –

+0

@Panagiotis Kanavos間違っていません。 – vipin

+0

いいえ、100%間違っています。 Webサービスを作成する場合は、WCFを使用します。 * NOT * ASMX。 Webサービスを呼びたい場合は、 'Service Reference'、* NOT *' Add Web Reference'を使います。これは、ASMXサービスとプロキシが過去10年間に作成された*相互運用性*標準を理解していないためです。 –

関連する問題