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

為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

贊助商鏈接:

主站蜘蛛池模板: 绍兴县| 聂拉木县| 图木舒克市| 延吉市| 胶州市| 三江| 苏尼特右旗| 三江| 全州县| 同德县| 噶尔县| 余江县| 邯郸县| 花垣县| 登封市| 成都市| 耒阳市| 兴文县| 松原市| 栖霞市| 沙坪坝区| 临潭县| 辛集市| 出国| 黄浦区| 琼海市| 蒙自县| 巴东县| 化州市| 陈巴尔虎旗| 茶陵县| 电白县| 当涂县| 镶黄旗| 会宁县| 沙湾县| 泸溪县| 丹东市| 浠水县| 聂拉木县| 三都|