我正在編寫一個MVC 5互聯網應用程序,我有一個關於使用interface
和Lazy<T> initialization
的問題。不能隱含地將懶惰<Class>轉換爲懶惰<Interface>
這裏是有問題的類定義:
public class WebAPITokenService1_0 : IWebApiTokenService
這裏是我的代碼,使用該接口的聲明與出作品:
聲明:
Lazy<WebAPITokenService1_0> webAPITokenService1_0;
初始化:
webAPITokenService1_0 = new Lazy<WebAPITokenService1_0>();
這裏是相同的代碼,但與使用接口:
宣言:
Lazy<IWebApiTokenService> webAPITokenService1_0;
初始化:
webAPITokenService1_0 = new Lazy<WebAPITokenService1_0>();
這裏使用在申報interface
時是誤差:
> Cannot implicitly convert type
> 'System.Lazy<CanFindLocation.Services.AndroidWebAPI._1_0.WebAPITokenService1_0>'
> to
> 'System.Lazy<CanFindLocation.Interfaces.WebService.IWebApiTokenService>' E:\CanFindLocation\MVC\CanFindLocation\CanFindLocation\Controllers\AndroidWebAPI\1_0\WebService1_0Controller.cs
我看過Lazy Initialization,但無法看到有關上述情況的任何信息。
我可以使用interface
與Lazy<T> initialization
,如果是這樣,我的上述代碼有什麼不正確?
'Lazy webAPITokenService1_0 = new Lazy (()=> new WebAPITokenService1_0());' –
PetSerAl
謝謝。如果您想發佈答案,我會接受這個答案。 – user3736648