Вызов метода службы wcf из Silverlight - PullRequest
1 голос
/ 12 мая 2011

Мне нужно вызвать метод службы wcf в моем проекте, если у меня есть метод getPrimaryList, как я могу его вызвать?

[OperationContract]
        public List<PrimaryClass> getPrimaryList()
        {
            string priConn = System.Configuration.ConfigurationManager.ConnectionStrings["SchoolConnectionString"].ConnectionString;
            var priList = new List<PrimaryClass>();
            using (SqlConnection conn = new SqlConnection(priConn))
            {
                const string sql = @"SELECT PrimarySchool,TopHonour,Cca,TopStudent,TopAggregate,TopImage FROM [Primary]";
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    SqlDataReader dr = cmd.ExecuteReader(
                        CommandBehavior.CloseConnection);
                    if (dr != null)
                        while (dr.Read())
                        {
                            var pri = new PrimaryClass
                            {
                                PrimarySchool = dr.GetString(0),
                                TopHonour = dr.GetString(1),
                                Cca = dr.GetString(2),
                                TopStudent = dr.GetString(3),
                                TopAggregate = dr.GetString(4),
                                TopImage = dr.GetString(5)
                            };
                            priList.Add(pri);
                        }
                    return priList;

                }

            }
        }

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Откройте проект, который необходимо вызвать сервис. Добавьте ссылку на службу в службу WCF. Создайте экземпляр сгенерированного класса прокси / клиента и вызовите метод.

(этот ответ почти такой же общий, как и ваш вопрос, если вам нужны дополнительные сведения, вы должны спросить их конкретно)

EDIT

Пример (здесь использование диспетчера не нужно):

private void Button_Click(object sender, RoutedEventArgs e)
{
    var proxy = new ServiceReference1.HelloWorldServiceClient();
    proxy.SayHelloCompleted += proxy_SayHelloCompleted;
    proxy.SayHelloAsync(_nameInput.Text);
}

void proxy_SayHelloCompleted(object sender, ServiceReference1.SayHelloCompletedEventArgs e)
{
    if (e.Error == null)
    {
        this.Dispatcher.BeginInvoke(
            () => _outputLabel.Text = e.Result
        );
    }
    else
    {
        this.Dispatcher.BeginInvoke(
            () => _outputLabel.Text = e.Error.Message
        );
    }
}
0 голосов
/ 12 мая 2011

Скажем, вы хотите вызвать сервис по нажатию кнопки.

private void Button_Click(object sender, RoutedEventArgs e) 
{     
   var client = new ServiceReference1.MyWCFServiceClient(); 
   var result = client.getPrimaryList();
   //do something here with the result now....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...