2012-11-02 72 views
0

我正在爲現有的Asp.net 2.0應用程序添加功能。我想使用一些.net 3.5功能,所以我添加了一些.net 3.5程序集到我的web配置中。我添加了System.Core和System.Xml.Linq。如何將System.Collections.Generic 3.5添加到Asp.net 2.0?

我想使用IEnumerable版本3.5,我需要添加什麼庫到web配置?

+0

沒有IEnumerable'的'3.5版本(也沒有'IEnumerable的',對於這個問題)。你想寫什麼代碼,你面臨什麼障礙? – phoog

+0

我基本上這樣做「msdn.microsoft.com/en-us/library/bb546137(v=vs.90).aspx」。 .net 2.0缺少SequenceEqual函數。 – HardCode

回答

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> 
+0

謝謝,工作正常!在添加目標v3.5後! – HardCode

+0

謝謝。我不確定是否需要這部分。我原本添加了它,但是把它拿出來了,所以我想這畢竟是需要的。 – dana

0

因爲在你的評論中,你提到你正在嘗試使用SequenceEqual,你的問題是使用System.Linq.Eumerable類的問題之一。該類將大部分(如果不是全部)Linq定義爲對象,則將其定義爲IEnumerableIEnumerable<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) 
+0

我收到此錯誤:無法加載文件或程序集「System.Linq.Eumerable,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089」或它的某個依賴項。該系統找不到指定的文件。 – HardCode

+0

@HardCode沒有System.Linq.Enumerable文件; System.Linq.Enumerable是在System.Core.dll中定義的類。 – phoog

+0

我在我的web配置文件中添加了這個:。我是否也需要添加dll? – HardCode

0

您需要安裝.NET你正在運行的機器上3.5 SP1,則需要使用至少Visual Studio 2008中,和您需要進入您的項目屬性並將目標框架設置爲3.5。

如果您仍在使用Visual Studio 2005,可能有一些技巧可以從.net 3.5中調用編譯器,但它並不是非常好,也不是很好的支持。

此外,請確保您在.cs文件中有using System.Linq;語句,或者如果您使用的是內嵌腳本塊,則在.aspx文件中具有等效語句。 SequenceEquals是IEnumerable類的extension method

+0

我沒有運行該解決方案。我只是編輯文件,因爲它不是一個我不需要編譯的應用程序。 – HardCode

+0

@HardCode所以你正在編輯.aspx文件? –

相關問題