0

思ったよりも少しひねりがあり、少し面倒です。通常、InArgument があり、以下のように使用します。

public InArgument<Int32> XYZ_ID { get; set; }
public InArgument<Int32> XYZ_COUNT { get; set; }

protected override IAsyncResult BeginExecute(...)
{
....snip....
_ABC_ID = XYZ_ID.Get(context),
_ABC_Count = XYZ_COUNT.Get(context)

これはうまく機能し、カスタムオブジェクトは同じプロセスに近いと思いましたが、理解できないようです。ActvUsrPrgmResults は、AccountName、FirstName などのプロパティの単なるクラスです。そのため、他の型と同様に渡しました。

public InArgument<bool> IsHappy { get; set; }
public InArgument<bool> IsClapping { get; set; }
public InArgument<ActvUsrPrgmResults> itm_ActvUsrPrgm { get; set; }

それにアクセスするのは少し難しいです....私にとっては。

protected override void Execute(CodeActivityContext context)
{
    NewPerson x = new NewPerson
    {
        AccountName = this.itm_ActvUsrPrgm.Get(?????
        //this doesn't work either
        AccountName = itm_ActvUsrPrgm.?????

つまり、itm_ActvUsrPrgm InArgument のプロパティにアクセスする方法がわかりません。

JBの助けや指示をありがとう

追加情報

ForEach (リスト) にこの CodeActivity があります。したがって、ジェネリック コレクション内の各アイテムは、ActvUsrPrgmResults の単一のインスタンスです。だから私はこれを自分の CodeActivity に渡し、そのアイテムのデータを操作するためのハンドルを持っていると考えていますか????

面白い

ウィルのコメントに基づいて、私はこのわずかな手について考えるようになりました. それは機能しますが、よりエレガントなアプローチがあるべきではありませんか?

public InArgument<bool> IsHappy { get; set; }
public InArgument<bool> IsClapping { get; set; }
public InArgument<ActvUsrPrgmResults> itm_ActvUsrPrgm { get; set; }

protected override void Execute(CodeActivityContext context)
{
    ActvUsrPrgmResults y = itm_ActvUsrPrgm.Get(context);
    NewPerson x = new NewPerson
    {
        AccountName = y.AccountName....
4

1 に答える 1

1

問題は私、私自身、そして私です。渡されたオブジェクトを処理できませんでした。内部の理由の一部については、「InArgument」から正確なオブジェクトをしっかりと把握するまで、すぐにアクセスできません。与えられた文脈。確かなことはわかりませんが、これは複数のワークフローが実行されていることが原因であると思われるため、適切なコンテキストからオブジェクトを取得する必要があります。とにかく、ここに私がインラインで学んだことの私のコメントがあります。

public InArgument<bool> IsHappy { get; set; } //bool variable being passed in
public InArgument<bool> IsClapping { get; set; } //bool variable being passed in
public InArgument<ActvUsrPrgmResults> itm_ActvUsrPrgm { get; set; } //custom object being passed in

protected override void Execute(CodeActivityContext context)
{
    bool Happy = context.GetValue(this.IsHappy);
    bool Clap = context.GetValue_this.IsClapping);
    ActvUsrPrgmResults y = context.GetValue(this.itm_ActvUsrPrgm);
    //NOW!!! we have a handle to the proper objects for this context

    //This also works. I just flip flopped the InArgument property and the context.
    ActvUsrPrgmResults y = itm_ActvUsrPrgm.Get(context);

    NewPerson x = new NewPerson
    { 
        AccountName = y.AccountName....
于 2012-12-27T20:46:07.287 に答える