• WCF学习之旅—WCF第二个示例(五)


     WCF学习之旅目录

    WCF学习之旅——第一个WCF示例(一)

    WCF学习之旅——第一个WCF示例(二)

    WCF学习之旅——第一个WCF示例(三)

    WCF学习之旅—WCF概述(四)

    WCF学习之旅—WCF第二个示例(五)

    WCF学习之旅—WCF第二个示例(六)

    WCF学习之旅—WCF第二个示例(七)

     

    二、WCF服务端应用程序

    第一步,创建WCF服务应用程序项目

    打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序。在弹出界面的“名称”对应的文本框中输入“SCF.WcfService”,然后点击“确定”按钮。如下图。

    第二步 , 安装Entity Framework

    1)  使用NuGet下载最新版的Entity Framework 6.1.3。在解决方案资源管理器中——>在项目SCF.WcfService上鼠标右键单击——>弹出一个菜单,选中“管理解决方案的NuGet程序包”,打开NuGet程序包管理界面。如下图。

     

    2)      在NuGet程序包管理界面中搜索 Entity,找到最新版本Entity Framework,点击安装。如下图。

     

    3)      安装完成之后,如下图。

     

     

     

    第三步,创建 SCF.Common 项目

    1. 在菜单栏上,依次选择“文件-->新建-->项目”,或者如下图在“解决方案资源管理器”中使用鼠标右键,弹出快捷菜单。 如下图。
    2. 在“添加新项目”对话框中,展开 “Visual C#”和“Windows”节点,然后选择“类库”模板。
    3. 在“名称”文本框中,输入 SCF.Common,然后选择“确定”按钮。 如下图。

     

      4. 在已经创建成功的SCF.Common项目中添加一个XMLHelper .CS文件,写如下代码。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Serialization;
    using System.IO;
     
    
    namespace SCF.Common
    {
        public class XMLHelper
        {
            /// <summary>
            /// 反序列化成对象
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="filename">XML文件路径</param>
            /// <returns></returns>
            public static T ParseXML<T>(string filename)
            {
                T obj = default(T);           
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                /* If the XML document has been altered with unknown
                                    nodes or attributes, handle them with the
                                    UnknownNode and UnknownAttribute events.*/
    
     
                // A FileStream is needed to read the XML document.
                FileStream fs = new FileStream(filename, FileMode.Open);   
    
                try
                {
                    obj =(T) serializer.Deserialize(fs);
                }
                catch (System.Exception ex)
                {
                    string s = ex.Message;
                    throw ex;
                }
                finally
                {
                    fs.Close();
                }
    
               return obj;
    
            }
    
            /// <summary>
            /// 反序列化成对象
            /// </summary>
            /// <param name="filename">XML文件路径</param>
            /// <param name="type">对象类型</param>
            /// <returns></returns>
            public static object ToObject(string filename,Type type)
            {
                object obj;   
                XmlSerializer serializer = new XmlSerializer(type);
                 FileStream fs = new FileStream(filename, FileMode.Open);
                 try
                {
                    obj = serializer.Deserialize(fs);
                }
    
                catch (System.Exception ex)
                {
                    string s = ex.Message;
                    throw ex;
    
                }
                finally
                {
    
                    fs.Close();
                }
                return obj;
            }
    
     
    
            /// <summary>
            /// 反序列化成对象
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="data">XML数据对象字符串</param>
            /// <returns></returns>
            public static T DeSerializer<T>(string data)
            {
    
                T obj = default(T);
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                try
                {
                    using (StringReader sr = new StringReader(data))
                    {
                        XmlSerializer xz = new XmlSerializer(typeof(T));
                        obj = (T)serializer.Deserialize(sr);                 
    
                    }           
    
                }
    
                catch (System.Exception ex)
                {
                    string s = ex.Message;
                    throw ex;
    
                }
                  return obj;
    
            }
    
            /// <summary>
            /// 创建XML文件
            /// </summary>
            /// <param name="fullFileName">XML文件名</param>
            /// <param name="data">XML字符串</param>
            public static void CreateXML(string fullFileName, string data)
            {
    
                using (StreamWriter sw = new StreamWriter(fullFileName, false, Encoding.UTF8))
    
                {
                    sw.Write(data);
                }
    
            }
    
            /// <summary>
            /// 把对象转换成字符串
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="t">对象实体</param>
            /// <returns></returns>
    
            public static string ToXML<T>(T t)
    
            {
    
                using (StringWriter sw = new StringWriter())
                {
    
                    XmlSerializer xz = new XmlSerializer(t.GetType());
                    xz.Serialize(sw, t);
                    return sw.ToString();
                }
            }
        }
    
    }

    第四步,创建实体数据模型

    1. 在菜单栏上,依次选择“文件”、“新建”、“项目”。
    2. 在“新建项目”对话框中,展开 “Visual C#”和“Winodws”节点,然后选择“类库”模板,在“名称”对话框中输入“SCF.Model”,然后点击确定按钮。 创建SCF.Model项目。如下图。

     

       3.通过NuGet安装相关的组件,具体操作步骤参见第一步。如下图中黄框中的组件。

     

         4. 在菜单栏上,依次选择“项目”、“添加新项”。

         5. 在“添加新项”对话框中,选择“数据”节点,然后选择“ADO.NET 实体数据模型”项。

         6. 在“名称”文本框中,输入 BookModel,然后选择“添加”按钮。如下图。

     

          7. 在实体数据模型向导中,在选择模型内容页上,选择“来自数据库的 EF 设计器”,然后再选择下一步按钮。 如下图。

     

        8. 在“选择你的数据连接”页上执行下列步骤之一:

    • 如果下拉列表中包含到 Test 示例数据库的数据连接,请选择该连接。
    • 或者选择“新建连接”按钮来配置新数据连接。 如下图。

     

          9. 在“连接属性”对话框中选择对应的数据库服务器,输入用户名与密码,选择要使用的数据库。如下图。

         10.如果数据库需要密码,请选择“是,在连接字符串中包含敏感数据”选项按钮,然后选择“下一步”按钮。 你可以观察一下下面图中的数据连接。

     

       11.在“选择你的版本”页上,选择“实体框架6.x”选项按钮,然后选择“下一步”按钮。

    说明

    如果你已经按第二步中安装了具有WCF 服务的 Entity Framework 6 的最新版本,同时通过NuGet安装 WCF Data Services Entity Framework Provider 程序包,那么将不会出现此对话框,直接进入下一步。

     

         12.在“选择数据库对象”页上,展开“表”节点、选中“Books”复选框,然后选择“完成”按钮。

              随即显示实体模型关系图,BookModel.edmx 文件也将添加到项目中。

     

    13.最终生成的结果如下。

     

  • 相关阅读:
    使用git pull文件时和本地文件冲突怎么办?
    Git回滚代码到某个commit
    PHP如何在页面中原样输出HTML代码
    git 创建本地分支、提交到远程分支
    php mysqli扩展之预处理
    htmlspecialchars() 函数过滤XSS的问题
    PHP json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES
    javascript学习笔记——Array
    javascript学习笔记——Object
    javascript的底层实现学习总结
  • 原文地址:https://www.cnblogs.com/chillsrc/p/5382337.html
Copyright © 2020-2023  润新知