我正在编写一个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