zoukankan      html  css  js  c++  java
  • 关于AutoMapper和WCF的一些认识

         现在互联网时代呈尚快速开发,快速迭代。伴随着必然产生一些好用的第三方工具,今天有幸看到了Automapper这种类似ORM的框架,但是跟ORM还不太一样,

    ORM是实体和数据库表之间的映射,而此框架主要实现实体和实体间映射,两个实体可以互相转换,即便两个实体属性名称和类型不一致也可以相互赋值,可以指定规则两个实体属性名称和个数必须一致或者忽略.

         公司最近做了一个新项目,就是基于restFul实现的WCF,最主要实现是服务契约接口方法要加属性WebInVoke,例如:

    [WebInvoke(Method = "GET", UriTemplate = "Method/{Id}"
    , RequestFormat = WebMessageFormat.Json
    , ResponseFormat = WebMessageFormat.Json)]

     FundClassBasicRecord Method(string Id);

    客户端访问方式不能采用原来的访问WCF的方式去访问服务端,否则会提示没有配置endpoint之类的错误,因为restful是基于http协议的,也就是基于URI,所以客户端采用webClient,参考代码如下:

      protected void Page_Load(object sender, EventArgs e)
            {
                GetInfoByID("F00000O593");
            }
            private void GetInfoByID(string id)
            {
                WebClient proxy = new WebClient();
                string serviceURL = string.Empty;
                DataContractJsonSerializer obj;
                if (string.IsNullOrEmpty(id))
                {
                    serviceURL = string.Format("URI/");
                    obj = new DataContractJsonSerializer(typeof(List<>));
                }
                else
                {
                    serviceURL = string.Format("URI/" + id);
                    obj = new DataContractJsonSerializer(typeof(FundClassBasicRecord));
                }
                byte[] data = proxy.DownloadData(serviceURL);
                Stream stream = new MemoryStream(data);
                var result = obj.ReadObject(stream);
                List<InforRecord> list = new List<InforRecord>();
                if (result is InforRecord)
                    list.Add(result as InforRecord);
                else if (result is List<InforRecord>)
                    list = result as List<InforRecord>;
            }
  • 相关阅读:
    trackr: An AngularJS app with a Java 8 backend – Part III
    trackr: An AngularJS app with a Java 8 backend – Part II
    21. Wireless tools (无线工具 5个)
    20. Web proxies (网页代理 4个)
    19. Rootkit detectors (隐形工具包检测器 5个)
    18. Fuzzers (模糊测试器 4个)
    16. Antimalware (反病毒 3个)
    17. Debuggers (调试器 5个)
    15. Password auditing (密码审核 12个)
    14. Encryption tools (加密工具 8个)
  • 原文地址:https://www.cnblogs.com/cby-love/p/5333760.html
Copyright © 2011-2022 走看看