internal static void SetTextExpressionNamespaces(object root, IList <string> namespaces, IList <AssemblyReference> references) { if (NamespaceHelper.ShouldUsePropertiesForImplementation(root)) { TextExpression.SetNamespacesForImplementation(root, namespaces); TextExpression.SetReferencesForImplementation(root, references); } else { TextExpression.SetNamespaces(root, namespaces); TextExpression.SetReferences(root, references); } }
static DynamicActivity GetDynamicActivity(ActivityBuilder activityDefinition) { DynamicActivity result = new DynamicActivity { Name = activityDefinition.Name }; foreach (DynamicActivityProperty property in activityDefinition.Properties) { result.Properties.Add(property); } foreach (Attribute attrib in activityDefinition.Attributes) { result.Attributes.Add(attrib); } foreach (Constraint constraint in activityDefinition.Constraints) { result.Constraints.Add(constraint); } result.Implementation = () => activityDefinition.Implementation; VisualBasicSettings vbsettings = VisualBasic.GetSettings(activityDefinition); if (vbsettings != null) { VisualBasic.SetSettings(result, vbsettings); } IList <string> namespacesForImplementation = TextExpression.GetNamespacesForImplementation(activityDefinition); if (namespacesForImplementation.Count > 0) { TextExpression.SetNamespacesForImplementation(result, namespacesForImplementation); } IList <AssemblyReference> referencesForImplementation = TextExpression.GetReferencesForImplementation(activityDefinition); if (referencesForImplementation.Count > 0) { TextExpression.SetReferencesForImplementation(result, referencesForImplementation); } return(result); }
private static DynamicActivity GetDynamicActivity(ActivityBuilder activityDefinition) { var result = new DynamicActivity { Name = activityDefinition.Name }; foreach (var property in activityDefinition.Properties) { result.Properties.Add(property); } foreach (var attrib in activityDefinition.Attributes) { result.Attributes.Add(attrib); } foreach (var constraint in activityDefinition.Constraints) { result.Constraints.Add(constraint); } result.Implementation = () => activityDefinition.Implementation; var vbsettings = VisualBasic.GetSettings(activityDefinition); if (vbsettings != null) { VisualBasic.SetSettings(result, vbsettings); } var namespacesForImplementation = TextExpression.GetNamespacesForImplementation(activityDefinition); if (namespacesForImplementation.Count > 0) { TextExpression.SetNamespacesForImplementation(result, namespacesForImplementation); } var referencesForImplementation = TextExpression.GetReferencesForImplementation(activityDefinition); if (referencesForImplementation.Count > 0) { TextExpression.SetReferencesForImplementation(result, referencesForImplementation); } return(result); }
public void Compile(string activityNamespace, string activityName, Activity activity, bool forImplementation = true) { if (_refAssemblies != null) { var references = _refAssemblies.Select(a => new AssemblyReference { Assembly = a }).ToArray(); if (!forImplementation) { TextExpression.SetReferences(activity, references); } else { TextExpression.SetReferencesForImplementation(activity, references); } } if (_usingNamespaces != null) { var namespaces = _usingNamespaces.ToArray(); if (!forImplementation) { TextExpression.SetNamespaces(activity, namespaces); } else { TextExpression.SetNamespacesForImplementation(activity, namespaces); } } var settings = new TextExpressionCompilerSettings { Activity = activity, Language = "C#", ActivityName = activityName, ActivityNamespace = activityNamespace, RootNamespace = "dd", GenerateAsPartialClass = false, AlwaysGenerateSource = false, ForImplementation = forImplementation, Compiler = new CSharpAheadOfTimeCompiler(), }; var results = new TextExpressionCompiler(settings).Compile(); if (results.HasErrors) { throw new Exception("Compilation failed."); } if (results.ResultType == null) { return; } var compiledExpressionRoot = Activator.CreateInstance(results.ResultType, activity) as ICompiledExpressionRoot; if (!forImplementation) { CompiledExpressionInvoker.SetCompiledExpressionRoot(activity, compiledExpressionRoot); } else { CompiledExpressionInvoker.SetCompiledExpressionRootForImplementation(activity, compiledExpressionRoot); } }