Spring.net 對webservice管理之Ajax非同步呼叫篇(一) 【原創】

來源:互聯網
上載者:User

 這幾天對以前的老項目進行升級,加入了spring.net,但遇到的很多問題,首先是對AjaxPro的注入失敗,這個是注入不進去的,spring.net沒有像對webservice一樣給AjaxPro提供了代理(如果誰有好的解決辦法請給我留言),所以我使用webservice代替AjaxPro對非同步調用,如何對webservice進行管理呢?網上看到了不少的文章,發現能真正解決問題的很少,而且說的不明白,因為要對webservice進行非同步呼叫,在首次載入的時候可以對webservice注入,但是當你在用戶端進行調用的時候發現載入時候所注入的對象都為null,現在來說下我的解決辦法:

Code

 

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
    public static UserBizImpl GetUserBiz()
    {
        Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();
        return context.GetObject("UserBizImpl") as UserBizImpl;
    }

    public WebService()
    {
    }

    [WebMethod]
    public string SysHello(string name)
    {
        return GetUserBiz().GetName(name);
    }

}

 

這裡使用構造方法注入,如果使用屬性注入,在用到非同步呼叫的時候對象為null

 

 

總結:在spring.net 參考文檔中提出使用spring.net代理類會把webservice的屬性覆蓋,而且消除對.asmx檔案的依賴,並且不寫webservice等特性也是沒問題的,但是我這裡使用的是非同步,如果使用如此配置的話注入的對象會為null,看看原文是怎麼說的

---------既然我們為web服務建立了服務端代理,就沒有必要在web服務類中應用諸如WebMethod之類的特性了。因為此時.NET基礎架構是看不到“真正”的服務物件的,.NET真正接觸到的是應用在代理類上的特性。

也就是說,我們完全可以從服務類中去掉WebService和WebMethod特性,只留下一個普通的.NET對象(一個PONO)。對於上面的例子來說,去掉這些特性後仍然可以正常工作,因為代理類產生器可以自動的在要匯出的介面方法上應用WebMethod特性。-----------------

下一篇講講述如何使用spring.net的webservice代理進行管理web服務,並通過Aop發布web服務已在用戶端訪問

 本文出自:http://www.cnblogs.com/myssh/archive/2009/07/03/1516436.html

 待續................

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.