1

因此,我有一个 C# 项目,其中我正在使用 Linq to 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 文件中?

4

2 回答 2

1

您收到此错误是因为 Application.Student 是不同的类型,您可以尝试使用 Application.ServiceReference.Student 来保存学生列表而不是“studentList”类型。

我想“studentList”是一个“Application.Student”列表,你必须使用相同的模型或使用类似这样的东西在它们之间进行复制(在第一个答案中): 将值从一个对象复制到另一个

于 2013-02-17T04:11:13.423 回答
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 调用?

于 2013-02-17T04:57:01.530 回答