既存の Asp.net 2.0 アプリケーションに機能を追加しています。.net 3.5 機能の一部を使用したいので、.net 3.5 アセンブリを Web 構成に追加します。System.Core と System.Xml.Linq を追加しました。
IEnumerable バージョン 3.5 を使用したいのですが、Web 構成にどのライブラリを追加する必要がありますか?
次のように参照アセンブリを追加します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
</configuration>
実行しているマシンに .net 3.5 SP1 をインストールする必要があり、少なくとも Visual Studio 2008 を使用する必要があり、プロジェクトのプロパティに移動して、ターゲット フレームワークを 3.5 に設定する必要があります。
まだ Visual Studio 2005 を使用している場合は、.net 3.5 からコンパイラを呼び出すためのトリックがあるかもしれませんが、それはあまりきれいではなく、十分にサポートされているわけでもありません。
また、using System.Linq;
インライン スクリプト ブロックを使用している場合は、.cs ファイルにステートメントがあること、または .aspx ファイルに同等のステートメントがあることを確認してください。IEnumerable クラスSequenceEquals
の拡張メソッドです。
あなたのコメントでは、SequenceEqual を使用しようとしていると述べているため、問題はSystem.Linq.Eumerable
クラスの使用の 1 つです。このクラスは、すべてではないにしてもほとんどの Linq to Objects を、IEnumerable
およびIEnumerable<T>
型の拡張メソッドの大規模なセットとして定義します。
このクラスは、System.Core.dll アセンブリで定義されています (参照については、http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aspxを参照してください)。
あなたはすでに System.Core 参照を追加したと言っているのでusing System.Linq;
、ファイルの先頭に追加していない可能性があります。
また、拡張メソッドはバージョン 2.0 の C# にまだ追加されていないため、2.0 コンパイラを使用している場合は、メソッドを静的メソッドとして呼び出す必要があります。それ以外の
sequenceA.SequenceEqual(sequenceB)
使用する必要があります
Enumerable.SequenceEqual(sequenceA, sequenceB)