0

既存の Asp.net 2.0 アプリケーションに機能を追加しています。.net 3.5 機能の一部を使用したいので、.net 3.5 アセンブリを Web 構成に追加します。System.Core と System.Xml.Linq を追加しました。

IEnumerable バージョン 3.5 を使用したいのですが、Web 構成にどのライブラリを追加する必要がありますか?

4

3 に答える 3

1

次のように参照アセンブリを追加します。

<?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>
于 2012-11-02T17:38:00.490 に答える
0

実行しているマシンに .net 3.5 SP1 をインストールする必要があり、少なくとも Visual Studio 2008 を使用する必要があり、プロジェクトのプロパティに移動して、ターゲット フレームワークを 3.5 に設定する必要があります。

まだ Visual Studio 2005 を使用している場合は、.net 3.5 からコンパイラを呼び出すためのトリックがあるかもしれませんが、それはあまりきれいではなく、十分にサポートされているわけでもありません。

また、using System.Linq;インライン スクリプト ブロックを使用している場合は、.cs ファイルにステートメントがあること、または .aspx ファイルに同等のステートメントがあることを確認してください。IEnumerable クラスSequenceEquals拡張メソッドです。

于 2012-11-02T17:25:54.570 に答える
0

あなたのコメントでは、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)
于 2012-11-02T17:22:25.870 に答える