现在MAUI为我们提供了所有Essentials api的接口,我正试图在我的代码中使用它们,以使事情更易于测试。
在这个视频中,James说我们应该将它们注册为:
builder.Services.AddSingleton<IGeolocation, GeolocationImplementation>();
但是实现类现在都是内部的,所以它们不能这样注册
是正确的方式,现在使用当前或默认的道具上的类如下?
builder.Services.AddSingleton<IGeolocation>(ctx => Geolocation.Default);
builder.Services.AddSingleton<IConnectivity>(ctx => Connectivity.Current);
感谢有很多变化一个接一个快速跟进。James的视频在当时可能是正确的,但是. net MAUI中的实现后来被改变了。
正确的方法,正如你指出的,是这样做:
builder.Services.AddSingleton<IGeolocation>(ctx => Geolocation.Default);
builder.Services.AddSingleton<IConnectivity>(ctx => Connectivity.Current);