我有一個應用程序。此應用程序使用一個接口來訪問數據庫。這個接口可以通過很多類來實現。例如,使用EF 4.4,但其他類可以使用效率更高的EF5。在未來,也許我會使用EF6,因爲它使用異步方法。在這個例子中,所有的方法都使用EF,但也可以使用其他方法。接口和異步方法
該應用程序編碼一次,使用接口,並根據配置文件,使用一個實現或其他,所以我只需要修改代碼在一個地方,構造函數,以添加新的選項實例化分配給接口的類。
目前所有的類的方法都不是async
,但將來如果我使用EF6我想使用異步方法,所以我不知道是否有可能使用EF6的類並實現該接口可以使用async
的方法。
對於EF6的異步方法,我會使用async/awiat模式,所以在我的類的方法中我需要使用async屬性。當我調用EF6的異步方法時,這使我可以使用await
關鍵字。
但是這個類可以實現第一次使用同步方法的接口嗎?
有沒有一些方法可以在主應用程序中使用許多實現而不需要修改代碼?一些實現將使用異步方法,而其他實現將同步。
請記住'async'不是簽名的一部分;異步和非異步方法都可以實現相同的接口方法。 – Servy
這不是可以等待的方法,而是(返回)類型。 – rism
對一個簡單問題的解釋太多。恕我直言。 – Mahmoodvcs