Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
My_shpory_Ivan_Ivanich (2).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
149.35 Кб
Скачать

1) Библиотека с интерфейсом

namespace CommunicationInterface

{

    [ServiceContract] // Говорим WCF что это интерфейс для запросов сервису

    public interface IMyObject

    {

        [OperationContract] // Делегируемый метод.

        string GetCommandString(int i);

    }

}

2) Сервер – консольное приложение

namespace CommunicationInterface

{

    public class MyObject : IMyObject

    {

        public string GetCommandString(int i)

        {

            switch (i)

            {

                case 1:// TODO: Реализация старта выполнения ваших команд

                    return "Начало обработки";

 

                case 0:// TODO: Реализация остановки выполнения ваших команд

                    return "Конец обработки";

 

                default:// TODO: Выполнение какой-либо вашей команды

                    return "Получил " + i.ToString();

            }

        }

    }

}

 

namespace Server

{

    class Program

    {

        static void Main(string[] args)

        {

            ServiceHost host = new ServiceHost(typeof(MyObject), new Uri("http://localhost:1050/TestService"));

            host.AddServiceEndpoint(typeof(IMyObject), new BasicHttpBinding(), "");

            host.Open();

            Console.WriteLine("Сервер запущен");

            Console.ReadLine();

 

            host.Close();

        }

    }

}

3) Клиент – консольное приложение

namespace Client

{

    [ServiceContract]

    public interface IMyObject

    {

        [OperationContract]

        string GetCommandString(int i);

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            Uri tcpUri = new Uri("http://localhost:1050/TestService");

            EndpointAddress address = new EndpointAddress(tcpUri);

            BasicHttpBinding binding = new BasicHttpBinding();

            ChannelFactory<IMyObject> factory = new ChannelFactory<IMyObject>(binding, address);

            IMyObject service = factory.CreateChannel();

 

            Console.WriteLine("Вызываю метод сервиса...?");

        }

    }

}

Пример 2

[ServiceContract]

interface MyUserService

{

[OperationContract]

UserDetails GetUserDetails(int userId);

}

and then for the data:

[DataContract]

class UserDetails

{

[DataMember]

int userId { get; set; }

[DataMember]

string userName { get; set; }

}

30. Структура проекта с использованием wcf сервисов. Интерфейсы сервиса, атрибуты для обозначения методов сервиса и контрактов данных.

Пример 1

1) Библиотека с интерфейсом

namespace CommunicationInterface

{

    [ServiceContract] // Говорим WCF что это интерфейс для запросов сервису

    public interface IMyObject

    {

        [OperationContract] // Делегируемый метод.

        string GetCommandString(int i);

    }

}

2) Сервер – консольное приложение

namespace CommunicationInterface

{

    public class MyObject : IMyObject

    {

        public string GetCommandString(int i)

        {

            switch (i)

            {

                case 1:// TODO: Реализация старта выполнения ваших команд

                    return "Начало обработки";

 

                case 0:// TODO: Реализация остановки выполнения ваших команд

                    return "Конец обработки";

 

                default:// TODO: Выполнение какой-либо вашей команды

                    return "Получил " + i.ToString();

            }

        }

    }

}

 

namespace Server

{

    class Program

    {

        static void Main(string[] args)

        {

            ServiceHost host = new ServiceHost(typeof(MyObject), new Uri("http://localhost:1050/TestService"));

            host.AddServiceEndpoint(typeof(IMyObject), new BasicHttpBinding(), "");

            host.Open();

            Console.WriteLine("Сервер запущен");

            Console.ReadLine();

 

            host.Close();

        }

    }

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]