2011-02-04 8 views
0

OKので、私が持っている:C#/ Compact Frameworkの2.0 /リストクエリエラー

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); 
    } 

これは私にいくつかのエラーを投げている:

は 'System.Runtime.Serialization.SerializationInfo' を入力する1つの参照を警告「c:\ Program Files(x86)\ Microsoft.NET \ SDK \ CompactFramework \ v2.0 \ WindowsCE \ mscorlib.dll」に定義されていますが、c:\ Program Files(x86)\ Referenceアセンブリ\マイクロソフト\フレームワーク\ v3.5 \ System.Data.DataSetExtensions.dll IMSCF

エラー2タイプ 'System.Data.DataT 「有能」は参照されていないアセンブリで定義されます。アセンブリ 'System.Data、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'への参照を追加する必要があります。 C:¥Data¥C#¥IMSCF¥IMSCF¥frmPickList.cs 52 13 IMSCF

エラー3「System.Data.DataRow」タイプは、参照されていないアセンブリで定義されています。アセンブリ 'System.Data、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'への参照を追加する必要があります。 C:¥Data¥C#¥IMSCF¥IMSCF¥frmPickList.cs 52 13 IMSCF

「var」キーワードは、最後の2つのエラーで強調表示されます。

私はC#と.NET CFでかなり新しいので、私がここで間違っていることを本当に分かっていません。このコードは、どこかのC#サイトで見つかったものから順応しています。

おかしい事は

が何かは、.NET CFがサポートされていないことをここにあります...文を使用して、すべての権利があるなどです...これらの参照は、私のプロジェクトには存在しない、である(それは、定期的になってきていますこのプロジェクトのテーマ:P)

ありがとうございます。

答えて

4

.net cf 3.5の機能を使用しています。あなたの見出しは、あなたが.net cf 2.0を使っていると言っています。それはあなたの問題を引き起こしています。

具体:

  1. Where方法は、LINQの一部です。 LINQは.net cf 3.5で導入されました。
  2. Lamba式が必要です.net cf 3.5
  3. また、varキーワードは.net 2.0に含まれていません。

so:.net cf 3.5(推奨)を使用するか、2.0で処理できるもののみを使用してください。

は(おそらくそれを置くために技術的により良い方法はありますが、それは2.0対3.5に要約)EDIT

:3.5にアップグレードする方法:Visual Studioの2008年に
メニューからプロジェクトを選択しますアップグレードプロジェクトをクリックし、はいをクリックします。それがそれであるはずです。

+0

ええ、私はちょうどそのvar事を考え出した。私はデバイス自体のため2.0にする必要があります。私は別の方法を見つけました。 –

+0

助けてくれてうれしいです。あなたは2.0に固執することを確信していますか?それはどんなデバイスですか? Pocket PC 2003、Windows Mobile 5.0+、Windows CE .NET 5.0+に.net 3.5をインストールすることができます。だから、あなたはpre2003デバイスを持っていない限り、あなたはそれに.net 3.5をインストールすることができるはずです。 (http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385)この制約を再度チェックするように励ましたいと思います。 –

+0

これはHoneywell Dolphin 6100バーコードスキャナです。スキャナSDKは技術サポートに従ってNETCF 3.5に同意していないようです。私は2.0でほぼ終わりました。 –

1

多分あなたはクラスライブラリとWindows Mobileアプリケーションを持っていますか?

もしそうなら、あなたのクラスライブラリが正しいVisual Studioテンプレートで作成されていることを確認しましたか?

モバイルVisual Studioがインストールされたテンプレートを使用して、このようなクラスライブラリを作成する必要があります。これは、通常のC#クラスライブラリで行ったように思われるためです。

あなたのクラスライブラリが2.0である間、あなたのWindows MobileフォームプロジェクトはCF 3.5です。両方のプロジェクトプロパティに移動し、ターゲットフレームワークが等しいかどうかを確認します(CF 3.5を使用しています!!)。

関連する問題