2012-03-16 4 views
1

動作しません、私は地方議会 するvar xamlInjector =新XamlInjector(「CreditAtRenewalFlow.xaml」、typeofのようCTORにカスタマイズされたアクティビティのアセンブリを通過しました(CreateFollowUp).Assembly);ソリューションは、ユニットテストでは

CreateFollowUpが

AsynCodeActivityである私は、エラー「要素 '解析ルールで ' '予期しない' PROPERTYELEMENT :: = EmptyElementました|。。(にStartElement ElementBody)を'。'行番号「2」および行位置「4」。次の行の実行時に

var host = WorkflowInvokerTest.Create(xamlInjector.GetActivity());

ユニットテストのサンプルである[のtestMethod] [DeploymentItem(@ "\ ProcessFlows Activity1.xaml \ SRC")] 公共ボイドActivity1Test(){

var xamlInjector = new XamlInjector("Activity1.xaml", typeof(CreateFollowUp).Assembly); 
    xamlInjector.ReplaceAll(typeof(CreateFollowUp), typeof (MockCreateFollowUp)); 

    var mockExternalServiceManager = new Mock<IExternalServices>(); 
    mockExternalServiceManager.Setup(x => x.CreateFollowUp()).Verifiable(); 

    var host = WorkflowInvokerTest.Create(xamlInjector.GetActivity()); 

    dynamic parameterValues1 = new WorkflowArguments(); 
    parameterValues1.value1 = mockExternalServiceManager.Object; 

    IDictionary<string, object> dictionary = host.TestActivity(); 

    } 

そしてCreateFollowUpは以下の通りです

公開密封クラスCreateFollowUp:AsyncCodeActivity {
[必須項目] public InArgument ExternalServices {get;セット; }

protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, 

オブジェクト状態) {アクションcreateFollowUp = this.ExternalServices.Get(コンテキスト).CreateFollowUp。 context.UserState = createFollowUp; return createFollowUp.BeginInvoke(コールバック、状態); }

protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result) 
    { 
     var createFollowUp = context.UserState as Action; 
     if (createFollowUp == null) 
     { 
      throw new ArgumentNullException("The AsyncState of the IAsyncResult was not of the type 

ExternalServices.AsyncCreateFollowUp」、(例外)NULL);}

 createFollowUp.EndInvoke(result); 
    } 
} 
+1

興味深い...それ以前は見たことがありません。 XAMLを私に送ってもらえますか? –

+0

私のコードをもう一度書き直した後、私はWorkflowArgumentsが問題を起こしていることに気付きました。ですから、私は入力オブジェクトを辞書オブジェクトとして変更したとき、うまくいきました。 – userpb

+0

あなたの場合、どのように修正しましたか?なぜあなたは入力argを辞書オブジェクトに変更する必要がありますか?私はここで同じ問題があり、何が間違っているのか分かりません。 –

答えて

0

活動のソースコードを変更しようと変更 "のxmlns:ローカル=" clr- xmlns:local = "clr-namespace:Activity1; assembly = Activity1"に変更します。

アセンブリは名前空間の参照に組み込みます(正しいアセンブリ名を使用してください)

関連する問題