<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      你是否覺得.Net Web Service 中asmx文件是多余的?

      用.Net開發 WebService一般都會先添加一個.asmx文件,然后在其.cs文件里將類標記上WebService,WebMethod等特性來構建WebService。是否想過.asmx文件是多余的呢。?
      其實.asmx即不像aspx一樣用作UI,又不像.handler文件一樣處理業務邏輯,它的存在就是多余。
      使用Spring.Net構建WebService完全可以不需要.asmx文件,直接通過它的IoC容器將它注入到對外提供服務的類中即可。
      本文將帶你走進一個沒有.asmx文件的WebService。

       

      目錄:
      • 創建不依賴于asmx文件的WebService 
      • 通過Spring.Net提供WebService服務 
       

       

      了解本機,需要對Spring.Net有一些基本的認識。我大致說說它的作用:

      1、可以作用一種IoC(或者說的DI)的容器實現程序的解耦。

      2、使用面前方面編程(AOP)的框架
      3、對不同事務之間的處理可以使用同一的管理方式
      4、提供驗證框架用來做驗證
      如怎樣配置Spring.Net。如果你對Spring.Net不夠了解,請參見;http://www.rzrgm.cn/tyb1222/category/270053.html
      1、創建不依賴于asmx文件的WebService
      首先通過Spring.Net創建不依賴具體asmx文件的Web Service .添加一個原始WebService的文件,只是通過Spring.Net的配置完成對具體文件的無依賴性。
          
            public class HelloWorldService : WebService 

          {
              //[WebMethod]
              public string HelloWorld(string str)
              {
                  return "Hello World:    " + str;
              }

              [WebMethod]
              public Person GetPerson()
              {
                  return new Person {Age = 25, Name = "zhansan"};
              }

              [WebMethod]
              public void SavePerson(Person person)
              {
                  return;
              }
          }

      配置如下圖:

       

      注意圖中abstract=true,可以讓Spring.Net避免創建多余的服務對象,Spring推薦這樣做。
      訪問服務:
       

      2、通過Spring.Net提供WebService服務

      這種方式是本節敘述的重點。由于服務的松散耦合性,很多人都認為服務更適合使用接口進行規范。Spring.Net也是基于這一點來實現的。
      首先我們定義服務接口(有點類似WCF中的服務契約,但無需標記ServiceContract等等任何標記)   接口定義:
          public interface IPerson
          {
              string SayHello(string name);
              int Add(int x, int y);
              void SavePerson(Person person);
              Person GetPerson(string name);
              string GetPersonString();
          }
      服務實現沒有什么特殊的地方,如下:
          public class PersonService : IPerson 

          {
              #region IPerson 成員

              public string SayHello(string name)
              {
                  return "Hello word:    " + name;
              }

              public int Add(int x, int y)
              {
                  return x + y;
              }

              public void SavePerson(Person person)
              {
                  return;
              }

              public Person GetPerson(string name)
              {
                  return new Person {Age = 25, Name = "zhangsan"};
              }

              public string GetPersonString()
              {
                  return JsonConvert.SerializeObject(new Person {Age = 25, Name = "zhangsan"});
              }
              #endregion
          }

      通過Spring.Net對服務進行配置:
      <configuration> 

          <configSections>
              <sectionGroup name="spring">
                  <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
                  <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
              </sectionGroup>
          </configSections>

          <spring>
              <context>
                  <resource uri="config://spring/objects"></resource>
              </context>
              <objects xmlns="http://www.springframework.net" xmlns:aop="http://www.springframework.net/aop">
                  <object id="person" type="SpringWebServiceIoC.PersonService,SpringWebServiceIoC">
                  </object>
                  <object id ="personObj" type="SpringWebServiceIoCContract.Person,SpringWebServiceIoCContract"></object>
                  <object id="PersonService" type="Spring.Web.Services.WebServiceExporter,Spring.Web">
                      <property name="targetName" value="person"></property>
                      <property name="MemberAttributes">
                          <dictionary>
                              <entry key="Add">
                                  <object type="System.Web.Services.WebMethodAttribute, System.Web.Services">
                                      <property name="Description" value="計算量整數之和"></property>
                                      <property name="MessageName" value="計算"></property>
                                  </object>
                              </entry>
                          </dictionary>
                      </property>
                  </object>
              </objects>
          </spring>
          
          <system.web>
              <compilation debug="true" targetFramework="4.0" />
              <httpHandlers>        
                  <add verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web"/>
              </httpHandlers>
              <httpModules>
                  <add name="SpringModule" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
              </httpModules>
          </system.web>

      </configuration>

      此種方式除了需要配置處理amsx文件的Handler之外,還需配置httpModules模塊,通過它來講請求轉發給Handler。
       
      訪問服務: 

      注意:使用Spring.NEt實現WebService時,在3.5平臺上開發的服務能正常運行在4.0上有可能會有如下異常

       

      但是在4.0上的服務,如果無參數又能正常運行。這通常是因為使用的Spring.Net版本不同導致。提醒注意。

       

      代碼下載:https://files.cnblogs.com/tyb1222/SpringWebService.rar 

      posted @ 2012-06-05 22:36  tyb1222  閱讀(11746)  評論(7)    收藏  舉報
      主站蜘蛛池模板: 日韩av在线不卡一区二区| 阜南县| 亚洲av成人网人人蜜臀| 粉嫩一区二区三区精品视频| 97精品人妻系列无码人妻| 久久天天躁狠狠躁夜夜婷| 成人精品色一区二区三区| 久久精品国产www456c0m| 中文无码av一区二区三区| 四虎在线成人免费观看| 国产精品呻吟一区二区三区| 精品久久久久久无码国产| 国产精品中文字幕av| 亚洲18禁一区二区三区| 无码射肉在线播放视频| 贵溪市| 亚洲国产欧美在线人成AAAA| 国产乱码1卡二卡3卡四卡5| 凹凸国产熟女精品视频| 国产熟妇另类久久久久久| 中文字幕第一页亚洲精品| 日韩在线视频网| 亚洲午夜伦费影视在线观看| 国产成人久久精品二区三| 国产在线拍偷自揄观看视频网站| 欧美福利电影A在线播放| 日韩区二区三区中文字幕| 亚洲国产高清第一第二区| 中文字幕人妻精品在线| 四虎精品国产精品亚洲精| 青青青青国产免费线在线观看| 丰满无码人妻热妇无码区| 18国产午夜福利一二区| 午夜免费福利小电影| 国产人妇三级视频在线观看| 一本久道久久综合中文字幕| 成人国产精品免费网站| 亚洲成a人片在线观看中| 九九热在线视频中文字幕| 久久综合色之久久综合| 亚洲国产女性内射第一区|