C# 无法将类型字符串转换为c中的System.Workflow.Activities.Rules.RuleAction

C# 无法将类型字符串转换为c中的System.Workflow.Activities.Rules.RuleAction,c#,C#,如何在c.中将类型字符串转换为System.Workflow.Activities.Rules.RuleAction。。 我想在不打开RulesEditor的情况下修改代码隐藏中的ThenActions、ElsActions和Condition。如果要更改操作,请不要将其转换为字符串,而是更改对象 根据操作的类型,您应该强制执行并更改它: if (!ruleSet.Validate(rv)) { List<System.Workflow.Activities.Rules.Rule

如何在c.中将类型字符串转换为System.Workflow.Activities.Rules.RuleAction。。
我想在不打开RulesEditor的情况下修改代码隐藏中的ThenActions、ElsActions和Condition。

如果要更改操作,请不要将其转换为字符串,而是更改对象

根据操作的类型,您应该强制执行并更改它:

if (!ruleSet.Validate(rv))
{ 
    List<System.Workflow.Activities.Rules.Rule> rulesList = new List<System.Workflow.Activities.Rules.Rule>(); 
    rulesList = ruleSet.Rules.ToList();
    foreach (System.Workflow.Activities.Rules.Rule rr in rulesList) 
    { 
        System.Workflow.Activities.Rules.Rule rules = new System.Workflow.Activities.Rules.Rule(); 
        string ruleName = rr.Name; 
        string condtion = rr.Condition.ToString(); 
        string s1 = rr.ThenActions.ToString(); 
        string[] s2 = s1.Split('='); 
        string rightString = s2[1]; 
        string append = "=Convert.ToString(" + rightString + ")"; 
        string result = s2[0] + append; 
        rules.ThenActions=result;//Error:cannot convert string to ruleaction 
    } 
}

这种转换有意义吗?没有代码,我们甚至不知道你在做什么!如果您想要任何答案,至少要在格式化代码上下功夫。为什么不更改ThenActions而不是将其转换为字符串等等。@帕特里克霍夫曼是对的,您可以执行rules.ThenActions=rr.ThenActions
var ra = (RuleStatementAction)rr.ThenActions[0];
ra.XXX = yourChange;
rules.ThenActions[0] = ra;