C# 将ArrayOfString转换为字符串数组
我已经寻找了很长时间,尝试了不同的方法来解决这个问题,但没有成功 我目前的计划如下: Web服务:DAL、控制器和带有Web方法的WebService Windows窗体:控制器接收web服务和窗体 我在DAL中收到一个字符串数组,我试图通过web服务将其发送到windows窗体程序中的控制器。但是收到错误: 无法隐式转换类型 “WindowsFormApplication.ServiceReference1.ArrayOfString”到 'System.Collections.Generic.List' 控制器的形式:C# 将ArrayOfString转换为字符串数组,c#,web-services,C#,Web Services,我已经寻找了很长时间,尝试了不同的方法来解决这个问题,但没有成功 我目前的计划如下: Web服务:DAL、控制器和带有Web方法的WebService Windows窗体:控制器接收web服务和窗体 我在DAL中收到一个字符串数组,我试图通过web服务将其发送到windows窗体程序中的控制器。但是收到错误: 无法隐式转换类型 “WindowsFormApplication.ServiceReference1.ArrayOfString”到 'System.Collections.Generic
您的服务返回类型WindowsFormApplication.ServiceReference1.ArrayOfString,该类型需要显式转换为List with方法:
你能提供完整的错误信息吗?以及client.GetAllEmployee的定义;和cont.GetAllEmployee;当然,无法将类型“WindowsFormApplication.ServiceReference1.ArrayOfString”隐式转换为“System.Collections.Generic.List”。客户端:ServiceReference1.WebService1SoapClient=new ServiceReference1.WebService1SoapClient//控制器cont.GetAllEmployee://public List GetAllEmployee{return dal.GetAllEmployee;}编辑/添加到您的问题中。改为编辑,sry!具体来说,您的错误发生在哪里?在这里,对代码的首次通过抽查似乎并不表明存在任何问题。
public List<string[]> GetAllEmployee()
{
return client.GetAllEmployee();
}
public List<string[]> GetAllEmployee()
{
return cont.GetAllEmployee();
}
public List<string[]> GetAllEmployee()
{
GetConnection();
con.Open();
stmt = con.CreateCommand();
stmt.CommandText = "SELECT [No_],[First Name],[Last Name],[Initials],[Job Title],[E-Mail] FROM [CRONUS Sverige AB$Employee]";
OdbcDataReader reader = stmt.ExecuteReader();
List<string[]> allEmployee = new List<string[]>();
String[] cols = new string[5];
for (int i = 0; i < cols.Length; ++i)
{
cols[i] = reader.GetName(i);
}
allEmployee.Add(cols);
while (reader.Read())
{
string[] s = new string[cols.Length];
for (int i = 0; i < s.Length; ++i)
{
s[i] = reader.GetValue(i).ToString();
}
allEmployee.Add(s);
}
con.Close();
return allEmployee;
}
public List<string[]> GetAllEmployee()
{
return dal.GetAllEmployee();
}
ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();
return dal.GetAllEmployee().ToList();