У меня есть активность с переменными (которые являются выражениями C#), но не в состоянии читать их значения.wf4 Активность может иметь доступ только к собственным переменным реализации
public Collection<Variable> Variables { get; } = new Collection<Variable>();
protected override void DoExecute(NativeActivityContext context)
{
var x = Variables.FirstOrDefault(...).Get(context);
}
в результате
Activity '1.1: MyActivity' cannot access this variable
because it is declared at the scope of activity '1.1: MyActivity'.
An activity can only access its own implementation variables.
я попытался выставить их через cachemetadata
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
metadata.SetImplementationVariablesCollection(Variables);
}
И это приводит к
Exception <System.NotSupportedException:
Expression Activity type 'CSharpValue`1' requires compilation in order to run.
Please ensure that the workflow has been compiled.
Мои переменные C# выражения и скомпилирован с
var wwfActivity = ActivityXamlServices.Load(xamlReader, new ActivityXamlServicesSettings {CompileExpressions = true});
Он чувствует себя странно, потому что это странно. Почему вы хотите получить доступ к такой переменной? – Joao
Если вы просеиваете мои вопросы в WF, вы найдете аналогичную ситуацию. Я не думаю, что у меня когда-нибудь было достойное решение, и я довел его до MS. – Will