如何在PIESDK的插件式算法调用中获取结果
在我们开发系统时设计的功能不一定都可交给插件式算法计算完成,
有时我们需要获取其算法结果,再在其结果进行分析之后与用户之间进行交互,
有时我们需要获取其算法结果,再调用其他算法以增强我们代码的可读性和可维护性。
首先我们需完成插件式算法的调用,然后只需在输入参数中赋予我们想要的结果
namespace MyAlgo
{
public class myInfo
{
public string InputInfos { get; set; }// 输入参数
public object result { get; set; }// 返回结果
}
public class myAlgo : BaseSystemAlgo
{
public myInfo info;
//参数设置
public override object Params
{
get { return info; }
set { info = (myInfo)value; }
}
public override bool Execute()//算法逻辑实现
{
//在逻辑实现完成之后将结果赋值在info中
info.result = (object)myresult;//myresult为通过此算法想输出的结果
return true;
}
}
}
那么在算法结束之后我们则可直接从中取回我们想要的结果了
MyAlgo.myInfo info = new MyAlgo.myInfo();
info.InputInfos = infos;//infos是算法所需参数
ISystemAlgo algo = AlgoFactory.Instance().CreateAlgo("MyAlgo.dll", "MyAlgo.myAlgo");
if (algo == null) return;
algo.Params = info;
//若为同步调用
AlgoFactory.Instance().ExecuteAlgo(algo);
object returnresult=info.result;//则直接获取其结果
//若为异步调用
AlgoFactory.Instance().AsynExecuteAlgo(algo);
//ISystemAlgoEvents.OnExecuteCompleted+= (ISystemAlgo algo1) =>{
//object returnresult=info.result;//则在完成事件中获取其结果
//}
同理,输入的参数在算法逻辑实现过程中更改也可以获取其值。
浙公网安备 33010602011771号