0

我正在使用一个 Windows 应用程序表单,我想要一个按钮来调用 Web 服务 MakeANote。Web 服务需要与登录一起返回的信息以及票证。LogOn 调用有一些输入参数、1 个参考(我听说是输入和输出)和一些输出参数。但它也返回一个“信息”数组。将该数组放入我的变量 pubinfo 中,如下所示:

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

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

所以类型是自定义类型:Webservice.Information[]。数组中的每个信息元素都有 3 个属性:字符串 ID、字符串名称和布尔 ReversedRead。

我在想---因为这是用 LogOn 按钮填充的,因此被封装在调用它的方法中,并且---因为我想将此信息传递给另一个 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。


如果我试图以错误的方式做这件事,或者有更好的方法来做这件事,我愿意接受想法。*我应该做一些完全不同的事情并在 buttonclick 中执行提取吗?如果是这样,有什么好的例子吗?

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 回答