Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 如何将EnqueueCallBack设置为我的通用回调_Silverlight_Unit Testing_Delegates - Fatal编程技术网

Silverlight 如何将EnqueueCallBack设置为我的通用回调

Silverlight 如何将EnqueueCallBack设置为我的通用回调,silverlight,unit-testing,delegates,Silverlight,Unit Testing,Delegates,我正试图设置????????值,但我的回调是通用的,它是在我的WebClient.SendData上设置的,我如何将我的EnqueueCallback实现为my Early Function LoginCallBack???您必须采取不同的方法才能实现此功能。为什么要将LoginCallBack排队?当sendData结束时,它将被异步调用,不是吗 此外,我认为在LoginCallBack中使用TestComplete和在login中使用EnqueueTestComplete没有任何意义。这不管

我正试图设置????????值,但我的回调是通用的,它是在我的WebClient.SendData上设置的,我如何将我的EnqueueCallback实现为my Early Function LoginCallBack???

您必须采取不同的方法才能实现此功能。为什么要将LoginCallBack排队?当sendData结束时,它将被异步调用,不是吗

此外,我认为在LoginCallBack中使用TestComplete和在login中使用EnqueueTestComplete没有任何意义。这不管用吗:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsistec.Domain;
using Microsistec.Client;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
using Microsistec.Tools;
using System.Json;
using Microsistec.SystemConfig;
using System.Threading;
using Microsoft.Silverlight.Testing;

namespace Test
{

    [TestClass]
    public class SampleTest : SilverlightTest
    {

        [TestMethod, Asynchronous]
        public void login()
        {

            List<PostData> data = new List<PostData>();
            data.Add(new PostData("email", "xxx"));
            data.Add(new PostData("password", MD5.GetHashString("xxx")));
            WebClient.sendData(Config.DataServerURL + "/user/login", data, LoginCallBack);
            EnqueueCallback(?????????);
            EnqueueTestComplete();
        }

        [Asynchronous]
        public void LoginCallBack(object sender, System.Net.UploadStringCompletedEventArgs e)
        {
            string json = Microsistec.Client.WebClient.ProcessResult(e);
            var result = JsonArray.Parse(json);
            Assert.Equals("1", result["value"].ToString());
            TestComplete();
        }
    }
我不确定LoginCallback是如何被调用的,但如果您确保发生这种情况,它应该会使测试通过

[TestClass]
    public class SampleTest : SilverlightTest
    {

        [TestMethod, Asynchronous]
        public void login()
        {

            List<PostData> data = new List<PostData>();
            data.Add(new PostData("email", "xxx"));
            data.Add(new PostData("password", MD5.GetHashString("xxx")));
            WebClient.sendData(Config.DataServerURL + "/user/login", data, LoginCallBack);
        }

        [Asynchronous]
        public void LoginCallBack(object sender, System.Net.UploadStringCompletedEventArgs e)
        {
            string json = Microsistec.Client.WebClient.ProcessResult(e);
            var result = JsonArray.Parse(json);
            Assert.Equals("1", result["value"].ToString());
            TestComplete();
        }
    }