获取“无法隐式转换类型'Tables []'到'Generic.List<>'

时间:2012-02-01 17:57:24

标签: .net wcf visual-studio-2010 visual-studio-2008

几年前,我写了一个WCF服务,该服务在IIS下的Windows 2003服务器上运行。我用VS 2008和.NET 3.5编写了它。有问题的代码是:

public static List<ASILookupTables> GetLookupTableAux(bool UseProduction)
{
ASIClassesDataContext dcASI = new ASIClassesDataContext();

var result = from lookups in dcASI.ASILookupTables4s
                         orderby lookups.SortOrder
                         select lookups;

List<ASILookupTables> list = new List<ASILookupTables>();

foreach (var item in result)
{
    ASILookupTables alt = new ASILookupTables();
    //more lines to add other elements
    list.Add(alt);
}

return list;
}

现在我正在编写一个使用.NET 4.0的VS 2010应用程序来使用它。 VS 2010应用程序中的相关代码段是:

            LookupSvc.LookupsClient proxy = new LookupSvc.LookupsClient();

        //retrieve list of lookup tables
        List<LookupSvc.ASILookupTables> lookupTables = proxy.GetLookupTableAux(true);

但是,我收到以下错误:

“无法将类型'AsiEF.LookupSvc.ASILookupTables []'隐式转换为'System.Collections.Generic.List'”

我不明白;在WCF代码中它看起来像我正在返回一个列表。它看起来不像我正在返回一个数组。是因为WCF服务是在.NET 3.5中而我的新项目是在.NET 4.0中吗?

1 个答案:

答案 0 :(得分:5)

如果您希望代理使用List<T>T[],则可以更改服务参考设置。

要更改设置,请右键单击解决方案资源管理器中项目中的服务引用。选择“配置服务参考”。在“收藏类型”中选择System.Collections.Generic.List