public override IEnumerable <LocalizedString> Execute(WorkflowContext workflowContext, ActivityContext activityContext) { double lat1 = 0, lng1 = 0, distance = 0, distance1 = 0; bool flag = true; var part = workflowContext.Content.As <WXMsgPart>(); try { lat1 = activityContext.GetState <double>("lat1"); lng1 = activityContext.GetState <double>("lng1"); distance = activityContext.GetState <double>("distance"); distance1 = _winXinService.GetDistance(lat1, lng1, part.Location_X, part.Location_Y); } catch { flag = false; } if (lat1 + lat1 + distance == 0 || !flag) { yield return(T("缺省")); yield break; } if (distance1 <= distance) { yield return(T("在范围内")); yield break; } else { yield return(T("在范围外")); yield break; } }