Xamarin.forms 依赖项服务事件

Xamarin.forms 依赖项服务事件,xamarin.forms,Xamarin.forms,我试图从droid端调用事件处理程序,但是它没有被触发。其他人都在工作,但此事件不会被触发。我不确定我做错了什么。我在MainActivity注册了依赖项服务,并在服务中设置了依赖项 public分部类主页面:ContentPage { 记录结果; IScanService扫描服务; 公共主页() { 初始化组件(); 结果=新文档结果(); BindingContext=新的MainPageViewModel(); 系统.诊断.调试.写入线(“测试cw”); 控制台写入线(“测试cw”); s

我试图从droid端调用事件处理程序,但是它没有被触发。其他人都在工作,但此事件不会被触发。我不确定我做错了什么。我在MainActivity注册了依赖项服务,并在服务中设置了依赖项

public分部类主页面:ContentPage
{
记录结果;
IScanService扫描服务;
公共主页()
{
初始化组件();
结果=新文档结果();
BindingContext=新的MainPageViewModel();
系统.诊断.调试.写入线(“测试cw”);
控制台写入线(“测试cw”);
scanService=DependencyService.Get();
scanService.ResultsParsedEvent+=(s,ev)=>{ResultsParsed(null,ev);};
}
已单击无效按钮(System.Object sender,System.EventArgs e)
{
scanService.scanService();
如果(!String.IsNullOrWhiteSpace(test))
{
解析(测试);
}
}
private void ResultsParsed(DocumentResults,EventArgs e)
{
Console.WriteLine(“更新”);
testLbl.Text=results.Name;
}
}
我的界面

公共接口IScanService
{
事件事件处理程序ResultsParsedEvent;
字符串扫描服务();
无效解析(字符串测试);
已解析的无效结果(DocumentResults,EventArgs e);
}
机器人实现

公共类RegService:IScanService
{
公共事件事件处理程序ResultsParsedEvent;
记录结果;
公共字符串测试;
公共字符串扫描服务()
{
Test=“scan”;
回归试验;
}
公共void解析(字符串测试)
{
Test=“解析”;
var results=新文档results();
结果:名称=测试;
线程thread1=新线程(()=>resultsParsed(results,null));
系统线程线程睡眠(10);
resultsParsed(结果,空);
}
已解析公共void结果(DocumentResults,EventArgs e)
{
ResultsParsedEvent?.Invoke(结果,e);
}
}

这与我在上一个问题中评论的问题相同。每次调用
Get
时,您都在创建一个新的服务实例。您需要这样做一次,并维护对它的引用,而不是每次都创建一个新实例。var service=DependencyService.Get();字符串测试=service.ScanService();像这样吗?请看我更新的问题,现在我得到了空引用。现在我得到了空引用,当我调试时,我将直接到私有的void results parsed(DocumentResults,EventArgs e){Console.WriteLine(“update”);testLbl.Text=results.Name;}
scanService.ResultsParsedEvent+=(s,ev)=>{ResultsParsed(**null**,ev);}