第伍步,创立数据服务

  1. 在“化解方案财富管理器”中,使用鼠标左键选中“SCF.WcfService”项目,然后在菜单栏上,依次选用“项目”、“添加新项”。
  2. 在“添加新项”对话框中,选拔“Web”节点,然后选用“WCF
    服务”项。
  3. 在“名称”文本框中,输入
    BookService,然后选用“添加”按钮。如下图。

 XML 1

       4.Visual Studio
贰零壹陆会同时添加五个IBookService接口文件。那么些接口代码文件中的代码如下:

[ServiceContract]

    public interface IBookService
    {


        [OperationContract]
        string GetBook(string Id);
        [OperationContract]
        string AddBook(string book);
        [OperationContract]
        string EditBook(string book);
        [OperationContract]
        string Search(string Category, string searchString);

    }

 

     5.
在“化解方案财富管理器中”中,定位BookService.svc.cs文件,双击在“代码编辑器”中打开,并编制如下代码。

public class BookService : IBookService
    {
        Entities db = new Entities();
        public string AddBook(string mbook)
        {
            try

            {
                Books book = XMLHelper.DeSerializer<Books>(mbook);
                db.Books.Add(book);
                db.SaveChanges();
            }

            catch (Exception ex)
            {
                return ex.Message;

            }

             return "true";        

        }


        public string EditBook(string mbook)
        {
            try
            {
                Books book = XMLHelper.DeSerializer<Books>(mbook);
                db.Entry(book).State = EntityState.Modified;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                return ex.Message;
            }

            return "true";
        }

        public string GetBook(string Id)
        {
            int bookId = Convert.ToInt32(Id);
            Books book= db.Books.Find(bookId);
            string xml=XMLHelper.ToXML<Books>(book);
            return xml;
          }

        public string Search(string Category, string searchString)
        {
            var cateLst = new List<string>();
            var cateQry = from d in db.Books
                          orderby d.Category
                          select d.Category;
            cateLst.AddRange(cateQry.Distinct());          

            var books = from m in db.Books
                        select m;
            if (!String.IsNullOrEmpty(searchString))
            {
                books = books.Where(s => s.Name.Contains(searchString));
            }

            List<Books> list = null;
            if (string.IsNullOrEmpty(Category))

            {
                list = books.ToList<Books>();
            }

            else

            {
                list = books.Where(x => x.Category == Category).ToList<Books>();

              }
            return XMLHelper.ToXML<List<Books>>(list);

        }

    }

      6. 
在菜单栏上,依次选拔“调节和测试”、“最先实施(不调节和测试)”以运转服务。
此时将开辟贰个浏览窗口,并呈现该服务的 XML 架构。

      7. 在地方栏中,在 BookService.svc
的 U安德拉L 末尾处输入 Books,然后按 Enter 键。如下图。

 XML 2

      8.  关闭浏览器窗口。

 

第⑥步,成立宿主程序

  1. WCF服务要求依存三个运行着的历程(宿主),服务寄宿就是为劳动钦赐二个宿主的进度。
  2. 在菜单栏上,依次选取“文件–>新建–>项目”,只怕正如图在“消除方案财富管理器”中运用鼠标右键,弹出神速菜单。XML 3
  3. 在“添加新类型”对话框中,展开 “Visual
    C#”和“Windows”节点,然后选择“控制台应用程序”模板。
    在“名称”文本框中,输入 Hosting,然后采取“鲜明”按钮。
    如下图。XML 4
  4.  大家能够透过代码的法门成就具有的服务寄宿工作。在“消除方案能源管理器中”中,定位到Program.cs文件,双击在“代码编辑器”中开辟,并编辑如下代码。下边包车型客车代码通过八个控制台应用对
    Book瑟维斯的过夜的落到实处。关于配置格局参见前一小说。

 

 using SCF.WcfService;

using System;

using System.Collections.Generic;

using System.Linq;

using System.ServiceModel;

using System.ServiceModel.Description;

using System.Text;

using System.Threading.Tasks;



namespace Hosting

{

    class Program
    {
         //  无配置文件的启动程序
        static void Main(string[] args)
        {
           using (ServiceHost host = new ServiceHost(typeof(BookService)))
            {
                host.AddServiceEndpoint(typeof(IBookService), new WSHttpBinding(), 
"http://127.0.0.1:8888/BookService");
                if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null)

                {
                    ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
                    behavior.HttpGetEnabled = true;
                    behavior.HttpGetUrl = new Uri("http://127.0.0.1:8888/BookService/metadata");
                    host.Description.Behaviors.Add(behavior);
                }
                host.Opened += delegate

  {
      Console.WriteLine("BookService,按任意键终止服务!");
  };

                host.Open();
                Console.Read();

            }

          }

}

 

在接下去的手续中,将开创一个 Windows
窗体客户端应用程序以应用该服务。

相关文章

网站地图xml地图