我需要帮助,我正在开发一个web服务项目,我使用sql-server从特定数据库中提取数据,然后将其发送到一个或多个客户端,如Java应用程序和C#表单。现在我将方法连接到C#表单并且我无法转换,或者换句话说,将arrayofstring从xml反序列化为c#中的List。
我已经完成了转换方法,但它在我的webservice中,它看起来像:
public List<List<string>> Converter(SqlDataReader sdr)
{
if (sdr != null)
{
List<List<string>> list = new List<List<string>>();
while (sdr.Read())
{
List<string> tmp = new List<string>();
for (int i = 0; i < sdr.FieldCount; i++)
{
string parameter = "";
try
{
if (sdr.GetFieldType(i) == typeof(string))
{
parameter = sdr.GetString(i);
}
if (sdr.GetFieldType(i) == typeof(int))
{
parameter = sdr.GetInt32(i).ToString();
}
}
catch (SqlException e)
{
Debug.WriteLine(e.Message);
}
tmp.Add(parameter);
}
list.Add(tmp);
}
return list;
}
return null;
}
此方法转换器会将我的arrayofstrings转换为List,但是一旦我在我的代理或控制器中调用该方法,它就会返回到ArrayOfStrings。
My Proxy aka Controller:
class Controller
{
WebService1SoapClient client = new WebService1SoapClient();
public List<List<string>> GetAllKeys()
{
List<List<string>> list = new List<List<string>>();
List<string> tmp = new List<string>();
var obj = client.GetAllKeys();///<--- when the method is called it should be List<string> type
//but the WebService1SoapClient client = new WebService1SoapClient(); wont let the convert List<string> go through.
foreach (var item in obj) //
{
tmp.Add(item.ToString());
}
list.Add(tmp);
return list;
}
private void getListStrings()
{
List<string> list = client.GetAllKeys().ToList<string>();
// cannot convert ArrayOfString to List<string> (what I want to do).
List<string> list = new List<String>(arr);
foreach (string item in client.GetAllKeys())
{
list.Add(item);
}
}
}
}
请注意,控制器在另一个解决方案中运行两个可视工作室或解决方案1.Webservice和2.我的c#win应用程序,我的控制器在哪里。
如何将ArrayOfstrings转换为List ??
谢谢我提前!