У меня есть рабочий процесс, корневая активность которого является пользовательской NativeActivity с общедоступным аргументом InArgument, называемым XmlData. Когда я пытаюсь использовать этот аргумент в дочернем действии If, я получаю следующую ошибку, используя XmlData в условии:
'XmlData' is not declared. It may be inaccessible due to its protection level
Мои свойства выглядят так:
public Activity Body {get;set;}
public InArgument<CustomObj> XmlData {get;set;}
и это метод CacheMetadata:
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
var runtime = new RuntimeArgument("XmlData",typeof(CustomObj),ArgumentDirection.In,true);
metadata.Bind(this.XmlData,runtime);
metadata.AddArgument(runtime);
metadata.AddChild(Body);
}
Я добавляю аргумент внутри CacheMetadata, используя метод metadata.AddArgument, и я пытался добавить его дочернее свойство, используя как AddChild, так и AddImplementationChild.
Если я заменю свою пользовательскую активность на ActivityBuilder и использую код для создания DynamicActivityProperty, тогда условие может быть успешно скомпилировано, поэтому я не вижу, чего мне не хватает, когда я использую свой собственный код.