所以,我有一个C#项目,我正在使用Linq到xml加载一个XML文档(包含学生和Id的名称),我必须从中获取相关数据(它们的截止日期,数量和内容)。 WCF服务。我刚刚右键单击添加服务并添加服务引用,现在需要将数组传递给GetData函数,我初始化但显然是null。我无法将我的数组转换为服务类型,该函数也返回数组。如何将数组分配给studentArray?
ServiceReference1.ServiceClient client = new ServiceReference1.RycorServiceClient();
Application.ServiceReference1.Student[] studentArray = new ServiceReference1.Student[9];
Student[] array = studentList.ToArray();
//for (int i = 0; i <= array.Count(); i++)
// studentArray[i] = (RycorApplication.ServiceReference1.Student)array[i];
//this gives me an error says Cannot convert type 'Application.Student' to 'Application.ServiceReference1.Student'.
var data = client.GetData(studentArray);
获取此数据后,如何将此数据保存到我的XML文件中?
答案 0 :(得分:1)
您收到此错误是因为Application.Student是一个不同的类型,您可以尝试使用Application.ServiceReference.Student来保存学生列表而不是&#34; studentList&#34;类型。
我认为&#34; studentList是一个&#34; Application.Student&#34;列表,您必须使用相同的模型或使用这样的东西在它们之间复制(在第一个答案中): Copy values from one object to another
答案 1 :(得分:0)
你几乎必须这样做:
List<ServiceReference1.Student> wcfStudentList = new System.Collections.Generic.List<ServiceReference1.Student>();
foreach (var student in studentList)
{
wcfStudentList.Add(new ServiceReference1.Student()
{
ID = student.ID,
Name = student.Name,
..etc..
});
}
var data = client.GetStudentData(wcfStudentList.ToArray());
如果您可以获取学生ID的列表而不是传递整个对象,我必须质疑您为什么不改变WCF调用?