2014-09-18 2 views
0

У меня есть базовый класс под названием «BaseActivity», полученный из NativeActivity. Я хочу иметь все свое общее поведение в базовом классе и использовать их в затуманенных классах. Предположим, что у меня есть общие аргументы в/из базового класса. Мои производные классы имеют свои собственные аргументы ввода/вывода. Мой вопрос в том, как я могу передать аргумент out из моего dervied класса в базовый класс, чтобы аргумент базового класса out передал сообщение клиенту?Получение активности рабочего процесса из собственной активности

BASEACTIVITY КЛАСС

общественного класса BaseActivity: NativeActivity { #region "Открытый Список параметров" // Определение входной активности/выходной аргумент типа строки общественного InArgument FirstArgument {получить; задавать; } public InArgument SecondArgument {get; задавать; } public OutArgument Результат {get; задавать; }

public virtual NativeActivityContext PushContext (NativeActivityContext context, Dictionary DictBase) { return context; }

защищен переопределение недействительными CacheMetadata (NativeActivityMetadata метаданные) { base.CacheMetadata (метаданные);

} 

защищены переопределение недействительным Execute (NativeActivityContext контекст) {

 // Read context variables to local string variables. 

     string firstVal= context.GetValue(this.FirstArgument); 
     string secondVal= context.GetValue(this.SecondArgument); 

     string OutputResult = context.GetValue(this.Result); 


     Dictionary<string, object> contextdictionary = new Dictionary<string, object>(); 
     contextdictionary.Add("first", firstVal); 
     contextdictionary.Add("second", secondVal); 

     contextdictionary.Add("output", OutputResult); 




     NativeActivityContext finalContext = PushContext(context, contextdictionary); 




    } 

}

производный класс

класс для детей общественности: BaseActivity { общественного InArgument XsltPath {получить; задавать; } public OutArgument OutValue {get; задавать; }

общественного переопределение NativeActivityContext PushContext (NativeActivityContext контекст, словарь DictBase) { // Некоторые строки манипуляции, а затем передать его. OutValue.Set (контекст, outputStringBuilder.ToString());

 } 



     return context; 
    } 

}

Вопрос заключается в том, как я могу передать к стоить дороже базовой деятельности из аргументов. Значение в дочерней активности корректно, но когда я вызываю worklfow, он возвращает пустую строку. пл. Помоги мне. Заранее спасибо.

+0

Можете ли вы обновить сообщение, чтобы иметь лучшее форматирование? Поскольку ваш код не правильно отформатирован – Fabske

ответ

0

Вы пытались просто перенаправить свой производный аргумент в базовый класс?

public InArgument<string> XsltPath 
{ 
    get { return base.FirstArgument; } 
    set { base.FirstArgument = value; } 
} 
public OutArgument<string> OutValue 
{ 
    get { return base.SecondArgument; } 
    set { base.SecondArgument = value; } 
}