我有一個異步庫,它是在.NET 3.5下編譯的,因爲它被.NET 3.5應用程序使用,但我希望能夠處理.NET 4.0 CancellationTokens如果有人想要傳入。爲了包含.NET 4.0的東西,我必須打破與.NET 3.5的兼容性。我到目前爲止唯一的選擇是允許傳入「object」然後使用反射,但這會導致醜陋的公共接口...我想確保客戶端代碼傳遞的是正確的對象類型在編譯時,而不是運行時。支持較舊的框架版本中使用的庫中的新的.NET框架功能
有沒有什麼辦法可以在編譯時綁定.NET 4.0對象,而不會在消費者應用程序中引入不必要的依賴關係?如果說「如果有這個功能,請使用此功能,如果不是,請跳過它」?
不需要,因爲您希望類型成爲公共接口的一部分,您必須編譯兩個不同的版本。 – adrianm 2012-01-10 21:38:50
我可以建議您的圖書館的4.0版本和3.5版本可能更務實。 – 2012-01-10 21:39:58
您可以使用#if!NET_3_5這樣的指令使用語句#endif來幫助減少代碼量。不知道這是否是一種好的做法。 – 2012-01-10 21:47:53