2015-06-03 5 views
0

У меня есть класс, расширяющий NativeActivityДобавить переменные в конструкторе для NativeActivity <T> в wf4

Я хочу, чтобы разрешить добавление переменных в сферу деятельности от дизайнера. Как я могу изменить код своей деятельности, чтобы конструктор позволил мне добавить переменные?

No option to add variables in custom activity through designer

Мой код

public class MyActivity : NativeActivity<bool> 
{ 
    public InArgument<string> SomeInArg { get; set; } 

    public InArgument<object> RefInArg { get; set; } 

    public WorkflowDataContext Data { get; set; } 

    public Collection<Variable> Variables { get; set; } 

    protected override void Execute(NativeActivityContext context) 
    { 
     Result.Set(context, true); 
    } 
} 

Спасибо.

ответ

0

Удивительно, добавив геттер, который возвращает пустую коллекцию, - решает проблему. Я подозреваю, что дизайнер пытается каким-то образом получить доступ к коллекции variables, а когда возвращается null - это не дает возможности устанавливать переменные в конструкторе.

public Collection<Variable> Variables { get; } = new Collection<Variable>(); 

Но теперь попытка получить доступ к результатам переменных в

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. 
+1

Возможно, вы должны инициализировать свою коллекцию в contructor, чтобы избежать «нового» каждый раз, когда вы получаете свойство. –

0

Попробуйте с:

Collection<Variable> variables; 
public Collection<Variable> Variables 
    { 
     get 
     { 
      if (this.variables == null) 
      { 
       this.variables = new Collection<Variable>(); 

      } 
      return this.variables; 
     } 
    } 

Это будет инициализировать коллекцию только один раз избегая «доступа» вопрос.

+0

Да, спасибо вашему комментарию раньше, я сделал. См. Обновление моего собственного ответа. Он работает и позволяет мне добавлять переменные через конструктор, но получает новую ошибку при попытке прочитать их (не потому, что коллекция null). См. Http://stackoverflow.com/questions/30616844/wf4-an-activity-can-only-access-its-own-implementation-variables – Alex

 Смежные вопросы

  • Нет связанных вопросов^_^