0

ボタンでWebサービスMakeANoteを呼び出すWindowsアプリフォームを使用しています。Webサービスには、ログイン時にチケットとともに返される情報が必要です。LogOn呼び出しには、いくつかの入力パラメーター、1 ref(入力と出力の両方であると聞いた)、およびいくつかの出力パラメーターがあります。しかし、それはまた「情報」の配列を返します。この配列は、次のように私の変数pubinfoに入れられます。

Webservice.Information[] pubinfo = null; //initialize

pubinfo = myflo.LogOn(username, password, ref ticket, out settings, out users,out terms, out currentUser);

したがって、タイプはカスタムタイプです:Webservice.Information[]。配列内の各Information要素には、文字列ID、文字列Name、およびブールReversedReadの3つのプロパティがあります。

---これは[ログオン]ボタンで埋められているため、それを呼び出すメソッド内にカプセル化されているため、----この情報を他のWebサービスであるMakeANoteに渡したいので、次のようなことを行うと考えていました。これ:

            for (int i = 0; i < pubinfo.Length; i++)
            {
                objInfo = pubinfo[i];
                storePubInfo(objInfo);
                MessageBox.Show("PubInfo stored", "PubInfo");

            }

pubinfo配列を、MakeANote関数が個別に収集するために呼び出す必要のある別の関数に格納します。これは私には非常に厄介に思えますが、私はこれにすべて慣れていないので、物事をシンプルに保ちたいと思います。

保存機能はどのようになりますか?これほど単純なことはうまくいかないようです。

       public void storePubInfo()
       {
          return storePubInfo;
       }

私もそれを追加しても大丈夫です。それは良いですか?そして、大丈夫ですか、それとも実際にWebservice.Information storePubInfo(var)のようなものが必要ですか?

ボタンをクリックすると、チケットの引数を使ってメモをとる関数が呼び出されるので、チケットは問題なく渡されます。私の質問は、ログオンで返される配列pubinfoです。


私がこれを間違った方法で行おうとしている場合、またはこれを行うためのより良い方法がある場合、私はアイデアを受け入れます。*まったく異なることをして、ボタンクリックで抽出を実行する必要がありますか?もしそうなら、何か良い例はありますか?

4

1 に答える 1

1
class MyClass
{
    List<Webservice.Information> _webServiceInformation = new List<Webservice.Information>()

    public void LogonAndStoreInfo()
    {
        Webservice.Information[] pubinfo = myflo.LogOn(username, password, ref ticket, out settings, out users,out terms, out currentUser);

        for (int i=0; i < pubInfo.Length; i++)
        {
            StorePubInfo(pubinfo);
        }

        Webservice.Information[] myPubInfo = GetPubInfo();
    }

    void StorePubInfo(Webservice.Information info)
    {
        _webServiceInformation.Add(info);
    }

    Webservice.Information[] GetPubInfo()
    {
        return _webServiceInformation.ToArray();
    }
}
于 2012-09-12T14:33:02.303 に答える