public void Run(RawlerBase parent) { try { var type = parent.GetType(); var field = type.GetRuntimeProperty(PropertyName); var text = RawlerBase.GetText(string.Empty, Child, parent); if (field.PropertyType == typeof(string)) { field.SetValue(parent, text, null); } else if (field.PropertyType == typeof(int)) { int num; if (int.TryParse(text, out num)) { field.SetValue(parent, num, null); } else { ReportManage.ErrReport(parent, "InitTreeで" + PropertyName + "の値をint型に変換に失敗しました"); } } else if (field.PropertyType == typeof(double)) { double num; if (double.TryParse(text, out num)) { field.SetValue(parent, num, null); } else { ReportManage.ErrReport(parent, "InitTreeで" + PropertyName + "の値をdouble型に変換に失敗しました"); } } else if (field.PropertyType == typeof(bool)) { if (text.ToLower() == "true") { field.SetValue(parent, true, null); } else if (text.ToLower() == "false") { field.SetValue(parent, false, null); } else { ReportManage.ErrReport(parent, "InitTreeで" + PropertyName + "の値をbool型に変換に失敗しました。Valueは" + text); } } } catch (Exception ex) { ReportManage.ErrReport(parent, "InitTreeで" + PropertyName + "でエラーが発生しました。" + ex.Message); } }
/// <summary> /// 指定したテキストをPreTreeにかける。 /// </summary> /// <param name="text"></param> /// <returns></returns> protected string GetText(string preText) { if (preTree != null) { return(RawlerBase.GetText(preText, PreTree)); } else { return(preText); } }
private IEnumerable <string> Convert(IEnumerable <string> list) { if (ConvertTree != null) { ConvertTree.SetParent(this.Parent); foreach (var item in list) { yield return(RawlerBase.GetText(item, ConvertTree, this.Parent)); } } else { foreach (var item in list) { yield return(item); } } }
/// <summary> /// PreTreeを通したあとのText /// </summary> /// <returns></returns> protected string GetText() { if (this.Parent != null) { if (preTree != null) { preTree.SetParent(); return(RawlerBase.GetText(this.Parent.Text, PreTree, this.Parent)); } else { return(this.Parent.Text); } } else { return(this.text); } }
private IEnumerable <TextPair <T> > Convert <T>(IEnumerable <TextPair <T> > list, Func <T, string> textFunc) { if (ConvertTree != null) { ConvertTree.SetParent(this.Parent); foreach (var item in list) { item.Text = RawlerBase.GetText(item.Text, ConvertTree, this.Parent); yield return(item); //yield return RawlerBase.GetText(item, ConvertTree, this.Parent); } } else { foreach (var item in list) { yield return(item); } } }