2010-05-21 202 views
2

我有一個針對3.5框架的.net程序集版本。此組件具有類Foo有兩個方法覆蓋:在asp.net 2.0 web應用程序中使用.net 3.5程序集

public class Foo { 
    public T Set<T>(T value); 
    public T Set<T>(Func<T> getValueFunc); 
} 

我引用該組件在我的asp.net 2.0 Web應用程序使用Set方法的第一個覆蓋(不Func鍵)。

但在建設,我得到一個錯誤,說我應該引用System.Core程序使用System.Func代表......但我不使用這種類型的...

有沒有解決這個問題解決方法?

PS: 沒有選擇將我的Web應用程序轉換爲3.5框架。

+0

您是否有權訪問引用程序集的源代碼? – 2010-05-21 11:30:39

+0

是的,我喜歡。但它是一個大型的庫,在內部大量使用3.5,所以重新編譯爲2.0也不是選項... – 2010-05-21 12:03:33

回答

2

將您的網頁應用轉換爲使用.NET 3.5(或4.0)。之後,一切都會好起來的。

如果你必須堅持到.NET 2.0,這裏有我的想法

  • 嘗試通過瀏覽到DLL和手動添加它來引用System.Core程序集。 .NET Framework 3.5使用與2.0相同的CLR,因此如果它沒有引用引用,它應該可以工作。 (例如,你不能添加的.NET 3.5的東西)
+0

通過引用System.Core來解決此問題(http://abdullin.com/journal/2008/12/23 /how-to-use-net-35-features-and-c-30-syntax-in-net-20.html)。無法通過瀏覽到我的系統上的程序集來添加參考... – 2010-05-21 12:51:08

+0

@masterik - 我很高興你能解決它。 – Venemo 2010-05-21 13:05:55

-1

您必須將您的網絡應用程序升級到.net 3.5才能使其工作或重新編譯從soce targetting .net 2.0開始的程序集(如果有的話)。

0

僅僅因爲你沒有在代碼中調用特定的重載並不意味着編譯器可以忽略它,如果它存在於你的類中正在使用,那麼編譯器需要知道它是什麼。您需要參考System.Core或將您的項目轉換爲使用.net 3.5

相關問題