几年前,我写了一个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中吗?
答案 0 :(得分:5)
如果您希望代理使用List<T>
或T[]
,则可以更改服务参考设置。
要更改设置,请右键单击解决方案资源管理器中项目中的服务引用。选择“配置服务参考”。在“收藏类型”中选择System.Collections.Generic.List
。