我使用泛型使用基本的操作创建服务:
public async Task<IReadOnlyCollection<FirebaseObject<T>>> GetAll <T(string endpoint)
where T: class
{
var token = _storageService.GetToken();
var res = await this._firebaseClient
.Child(endpoint)
.WithAuth(token.AccessToken)
.OnceAsync<T>();
return res;
}
这个想法是从不同的视图模型调用此方法,但是不起作用,我是通过这种方式实现的:
在viewmodel的内部:
public TasksViewModel(
IMvxNavigationService navigationService,
IBasicCRUDService crudService)
{
this.navigationService = navigationService;
this._crudService = crudService;
this.LoadTasksCommand = new MvxAsyncCommand(this.LoadTasks);
}
方法:
public IMvxAsyncCommand LoadTasksCommand { get; private set; }
public async System.Threading.Tasks.Task LoadTasks()
{
var res = await _crudService.GetAll<Models.Task>("tasks");
}
但是,当BasicCrudService中发生了对Firebase的调用时,该应用程序停止运行并引发此错误:
(23746):/Users/builder/jenkins/workspace/xamarin-android-d15-7/xamarin-android/external/mono/mono/mini/debugger-agent.c:4923:无法执行该方法,因为包含类型未完全实例化。程序集:类型:成员:(空)签名: (23746):致命信号6(SIGABRT),tid> 23746(ame.Doing_Droid)中的代码-6
有什么想法吗?
感谢所有人,并为英语不好!!