none
WebService,Silverlight引用服务问题 RRS feed

  • 问题

  • 创建了一个WebService(C#写的),形式如:

           [WebMethod]
            public List<PersonInfo> GetPersonList()
            {
                List<PersonInfo> list = new List<PersonInfo>();
                for (int i = 0; i < 10; i++)
                {
                    list.Add(new PersonInfo(){ID=i,Name="zheshi" + i.ToString()});
                }
                return list;
            }
            public class PersonInfo
            {
                public int ID { get; set; }
                public string Name { get; set; }
            }

    在Silverlight中,通过添加引用服务的方式,使用WebService的这个方法。

    服务引用中的集合类型选择System.Collections.ObjectModel.ObservableCollection,而不是System.Array。

    刚开始的时候,其返回值是ArrayOfString形式的。

    但是不知道什么原因,现在变为了String[]数组形式了。

    求原因分析。


    2013年4月7日 2:06

答案

  • Silverlight不支持DataTable类型.对于DataTable类型的返回值,返回的应该是Linq的XElement[]类型.不知道为什么你这里会是String[].
    另外如果是新写的web service,不建议使用DataTable.这个数据类型很老了建议淘汰.一般现在用Entity Framework.也可以用傻瓜版的RIA Services.

    Allen Chen
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年4月15日 2:12
    版主

全部回复

  • 发现其他的地方使用了DataTable作参数造成的这个问题。类似以下这样的。

            [WebMethod]
            public System.Data.DataTable GetTable()
            {
                System.Data.DataTable table = new DataTable();

                return table;
            }

    求详细原因。。

    2013年4月9日 6:14
  • Silverlight不支持DataTable类型.对于DataTable类型的返回值,返回的应该是Linq的XElement[]类型.不知道为什么你这里会是String[].
    另外如果是新写的web service,不建议使用DataTable.这个数据类型很老了建议淘汰.一般现在用Entity Framework.也可以用傻瓜版的RIA Services.

    Allen Chen
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年4月15日 2:12
    版主