C# / Compact Framework 2.0 / List query error
好的,我有:
1 2 3 4 5 6 7 8 9 10 11 12 | var filteredItems = lstAllItems.Where(item => item.Parent.ID == parentId); TreeNode childNode; foreach (var i in filteredItems.ToList()) { if (parentNode == null) childNode = tvwPickList.Nodes.Add(i.Text); else childNode = parentNode.Nodes.Add(i.Text); RefreshPickList(i.ID, childNode); } |
这给我带来了一些错误:
警告1对类型"System.Runtime.Serialization.SerializationInfo"的引用声称它是在"C:Program Files(x86)Microsoft.NETSDKCompactFrameworkv2.0WindowsCEmscorlib.dll"中定义的,但找不到它C:Program Files(x86)
eference AssembliesMicrosoftFrameworkv3.5System.Data.DataSetextensions.dll IMSCF
错误2在未引用的程序集中定义了类型"System.Data.DataTable"。必须添加对程序集"system.data,version=2.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089"的引用。c:datac imscfimscffrmpicklist.cs 52 13 imscf
错误3在未引用的程序集中定义了类型"System.Data.DataRow"。必须添加对程序集"system.data,version=2.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089"的引用。c:datac imscfimscffrmpicklist.cs 52 13 imscf
最后两个错误突出显示了"var"关键字。
我对C和.NET CF非常陌生,所以我不知道我在这里做错了什么;代码是根据我在某个C网站上找到的东西改编的。
有趣的是,这些引用确实存在于我的项目中…所有正确的使用语句都在那里等等…
这里是否有.NET CF不支持的内容(它正在成为这个项目中的一个循环主题:p)
事先谢谢。
您使用的是.NET CF 3.5的功能。你的标题说你正在使用.NET CF 2.0。这就是你的问题所在。
更具体地说:
所以:要么使用.NET CF3.5(推荐),要么只使用2.0可以处理的。
(也许有一种技术上更好的说法,但归根结底是2.0对3.5)
编辑:如何升级到3.5:在Visual Studio 2008中,从菜单中选择"项目",单击"升级项目",然后单击"是"。应该就是这样。
也许你有一个类库和Windows Mobile应用程序?
如果是,您是否检查过使用正确的Visual Studio模板创建类库?
您需要使用已安装的移动Visual Studio模板创建此类类库,因为您似乎使用了常规的C类库1,它添加了在CF中不需要的名称空间。
您可以检查的另一件事是,您的Windows Mobile窗体项目可能是CF 3.5,而类库是2.0。转到两个项目属性并检查目标框架是否相等(您将使用CF 3.5!!!)