1

私のワークフローでは、リストを返すサービスを呼び出します。問題は、私のワークフローでAddToCollection Activitieを使用してコレクションに新しい文字列を追加しているのに、アクティビティに到達するとすぐにエラーが発生することです。

デバッグとチェックを行うと、ワークフローログが表示され、「コレクションのサイズが固定されていました」というエラーが表示されます。完全なログは次のとおりです。

System.SZArrayHelper.Add [T](T value)System.Activities.Statements.AddToCollection`1.Execute(CodeActivityContext context)System.Activities.CodeActivity.InternalExecute(ActivityInstance instance、ActivityExecutor executor、BookmarkManagerブックマークマネージャー)System.Activities.ActivityInstance。 Execute(ActivityExecutor executor、BookmarkManagerブックマークマネージャー)System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor、BookmarkManagerブックマークマネージャー、ロケーションresultLocation)

私が得られないのは、なぜ(そしてこれがどのように起こったのか)ですか?これはバグですか?私は特にリストを返します...なぜそれは固定サイズであると言うのですか?!?

編集1:本当に奇妙なことがあります...私の元のワークフローは非常に大きかったので、このエラーを再現するためだけに、新しい、より小さなワークフローを作成しました...そして私はできません!

4

1 に答える 1

1

私の推測では、WCF はリストをネットワーク経由で送信する前に配列にシリアライズしていると思われます。回避できるかは不明。

とにかく、これこれをチェックしてください

ワークフローで新しい変数を作成し、サービスから受け取るときにリストを割り当てることもできます。

listWFVariable = new List<string>(arrayReceivedFromWebService);

これで、追加操作を行うことができます。

于 2013-03-14T15:37:17.867 に答える