Решение для «XamlInjector – Не удается создать ошибки неизвестного типа» не работает - PullRequest
1 голос
/ 16 марта 2012

В модульном тесте я передал сборку Custom Activity в ctor как локальную сборку var xamlInjector = new XamlInjector ("CreditAtRenewalFlow.xaml", typeof (CreateFollowUp) .Assembly);

CreateFollowUp является AsynCodeActivity

Я получил ошибку "Неожиданное" СОБСТВЕННОСТЬ "в правиле разбора" Элемент :: =. EmptyElement | (StartElement ElementBody). '.' Номер строки «2» и позиция «4». " при выполнении следующей строки

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

Образец модульного теста - [TestMethod] [DeploymentItem (@ "SRC \ ProcessFlows \ Activity1.xaml")] public void 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 {
[RequiredArgument] public InArgument ExternalServices {get; задавать; }

    protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback,

состояние объекта) { Действие createFollowUp = this.ExternalServices.Get (context) .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. ", (Exception) null); }

        createFollowUp.EndInvoke(result);
    }
}

1 Ответ

0 голосов
/ 06 июля 2012

попробуйте изменить исходный код действия.Измените "xmlns: local =" clr-namespace: Activity1 "на xmlns: local =" clr-namespace: Activity1; Assembly = Activity1 ".

включить сборку в ссылки на пространства имен (используйте правильное имя сборки)

...