我正在使用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转换为类型对象[]'我尝试过使用泛型,我也遇到了同样的问题。
答案 0 :(得分:0)
生成服务引用时,应将CollectionType设置为System.Collections.Arraylist - 它位于UI的高级部分中。它默认为传递数组。
这里有更多信息:http://msdn.microsoft.com/en-us/library/aa347850(v=vs.90).aspx