成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

為ASP.NET“包裝”外部調用DLL

2010-08-28 10:52:45來源:西部e網作者:

  現在接觸一個需求,要使用一個網關接口實現短信發送,實現過程并不難,是使用[DllImport("*.dll")],但用ASP.NET調用別人寫好的DLL還是頭一次。看了一下COM和非托管代碼的介紹,搞的云里霧里反而更不知道自己要什么了,還是親自動手做一下就知道。

  這網關有一個實現的例子:

  程序代碼

        [DllImport("MWGateway.dll")]//帳戶登陸
        private static extern int MongateConnect(string ip, int port, string account, string pwd);
        [DllImport("MWGateway.dll")]//發送單向信息
        private static extern int MongateSendSms(int clientsock, string mobi, string note);
        [DllImport("MWGateway.dll")]//測試連接
        private static extern int MongateTestConn(int clientsock);
        [DllImport("MWGateway.dll")]//查詢余額
        private static extern int MongateQueryBalance(int clientsocket);
        [DllImport("MWGateway.dll")]//查詢使用   
        private static extern int MongateQueryUsed(int clientsocket);


  注意:以上代碼是可以放在ASP.NET頁面中直接運行的,但有個條件,就是那個MWGateway.dll文件得搞到%system32%目錄中,放在bin中不行,會提示說找不到模塊。

  這直接帶來的問題是,沒辦法在服務器上部署,因為要服務器的%system32%中放入一個動態庫是很難做到的。

  我查了一下,都說在ASP.NET2.0環境中是可以把DLL放在bin中的方式調用,但我實驗失敗了;如果是應用程序項目,要把DLL文件放在debug中,試了一下,確實可以。

  換個角度去實現它:我先寫個類庫項目,這個類的功能就是“解釋”一下DLL中的方法,用ASP.NET調用這剛寫的類庫項目,就可以實現把DLL拷貝到Bin文件夾中完成調用了。在服務器上驗證了一下,每個應用程序池都可以運行獨立的DLL,并且互相無任何干擾。

  這種方式有點像某種“包裝器”,和那個Runtime Callable Wrapper的思路近似。我的web應用程序的一部分可以連接到DLL,并且向上提供更多實用方法,設計模式中是叫接口模式。

關鍵詞:ASP.NET

贊助商鏈接:

主站蜘蛛池模板: 清水县| 根河市| 陵水| 龙江县| 连城县| 长汀县| 卢氏县| 台东市| 天台县| 大名县| 福州市| 绥阳县| 抚远县| 巴林左旗| 谷城县| 延寿县| 岳阳县| 休宁县| 友谊县| 南通市| 尼勒克县| 九台市| 定陶县| 施甸县| 祁阳县| 大厂| 夏河县| 长治县| 望江县| 渝北区| 唐河县| 昂仁县| 富锦市| 台湾省| 罗山县| 承德县| 大港区| 古蔺县| 乐平市| 合江县| 长白|