Winform业务层如何调用UI层的代码
2021-03-12 21:27
标签:简单的 sync parse browser sha sign cat async val 最近在做的Winform项目,请求一个接口,接口中有一个参数是通过执行一段JavaScript获取的,所以,每次调用接口都需要执行一段JavaScript。不是每一次调用接口都会成功,所以需要多次调用直到接口调用成功。 由于执行JavaScript需要CefSharp,业务层不可能引用CefSharp这个组件,所以循环调用接口就要放在UI层,也只能放在UI层。当多个地方调用这个接口的话,就会有很多冗余的代码。 问题的关键就是如何把执行JavaScript放到业务层,而又不引用CefSharp,所以就需要把方法当做参数传到业务层,在合适的时候调用这个传入的方法。 其实在JavaScript中,传递方法是很简单的,直接传递方法名就行了,在C#里面要用Func或Action封装一下。 执行这个JavaScript需要返回一个字符串,所以方法原型就是Func 然后业务层的代码 Winform业务层如何调用UI层的代码 标签:简单的 sync parse browser sha sign cat async val 原文地址:https://www.cnblogs.com/lhking/p/12580395.html一、背景介绍
二、普通写法
三、通过Func重构
public static Funcstring> GetSignFunc()
{
return () => { return CEFBrowser.EvaluateScriptAsync(MainForm.cefWebBrowser, "js...").Result.Result.ParseToString(); };
}
public TData
> GetProductList(Funcstring> getSignFunc)
{
TData
> obj = new TData
>();
try
{
while (true)
{
string sign = getSignFunc();
}
}
catch (Exception ex)
{
}
return obj;
}
文章标题:Winform业务层如何调用UI层的代码
文章链接:http://soscw.com/index.php/essay/63826.html