2

我正在使用 c#/.net 3.5。第一次使用 WCF,我有 2 个后端 WCF 项目:

namespace WcfService1
{
    [ServiceContract]
    public interface ICalculationService
    {

    [OperationContract]
    Int32 add(ArrayList arr);

    [OperationContract]
    Int32 mean(ArrayList arr);

}

}

namespace WcfService1
{
    public class CalculationService : ICalculationService
    {

  public Int32 add(ArrayList arr)
        {
            Int32 total = 0;
            Int32 sum = Convert.ToInt32(arr);
            foreach (int i in arr)
            {
                total += i;
            }

            return total;
        }

        public Int32 mean(ArrayList arr)
        {
            Int32 total = 0;
            foreach (int i in arr) 
            {
                total += i;
            }
            total = total / arr.Count;
            return total;
        }

    }
}

该后端进行简单的数学计算,在前端生成值。

和前端 GUI(Windows 窗体应用程序)。

public partial class Form1 : Form
    {
        ArrayList arr = new ArrayList();
        List<Int32> Mylist = new List<Int32>();
        public Form1()
        {
            InitializeComponent();
        }

private void button1_Click_1(object sender, EventArgs e)
        {   //Generating the Arraylist

            string lista = txtArray.Text;
            string[] array = lista.Split(',');

            int length = array.Length;

            for(int i=0; i< length; i++)
            {
                Int32 value = Convert.ToInt32(arr[i]);
                Mylist .Add(value);
                result.Text += arr[i];
            }

        }


        private void button1_Click(object sender, EventArgs e)
        {
            CalculationServiceClient client = new CalculationServiceClient();
            Int32 result = client.add(arr);

        }

    }
}

第一次单击按钮会生成一个使用逗号分隔值的 ArrayList。第二次按钮单击应该从服务器端调用该方法。

我在最后一行收到错误 Int32 result = client.add(arr); 错误是“无法将类型 Arraylist 转换为类型对象 []”我尝试使用泛型,我遇到了同样的问题。

4

1 回答 1

0

生成服务引用时,您应该将 CollectionType 设置为 System.Collections.Arraylist - 它位于 UI 的高级部分。它默认传递数组。

这里有更多信息:http: //msdn.microsoft.com/en-us/library/aa347850 (v=vs.90).aspx

于 2013-10-31T13:14:42.627 回答