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

為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

贊助商鏈接:

主站蜘蛛池模板: 章丘市| 睢宁县| 桓台县| 建阳市| 双柏县| 乌兰县| 双江| 老河口市| 抚宁县| 隆尧县| 武平县| 铜鼓县| 西畴县| 平陆县| 卢湾区| 河西区| 来安县| 长治市| 道孚县| 出国| 茌平县| 杨浦区| 桑日县| 彰化县| 道真| 郯城县| 嘉峪关市| 义乌市| 蓝田县| 和硕县| 布尔津县| 台安县| 五河县| 磐安县| 陕西省| 马龙县| 鄢陵县| 开化县| 泾川县| 尤溪县| 玉山县|