有一個老專案是asp的,但是有些功能在asp上實現不了,.net中倒是很容易實現,所以就引出了標題所述是事情。
因為是第一次做,花了整整一天的時間,也走了一些彎路,現在把它總結一下。
Step 1.
在vs2003中新建一個類別庫項目,在"項目屬性"-"配置屬性"-"生成"中,設定"為COM Interop 註冊"為True
Step 2.
添加一個類,檔名無所謂
namespace TEST
{
public class dosm
{
....
public string test()
{
return "Hello, world!";
}
}
}
生成專案
Step 3.
新加入一個.asp文件
<%
set obj=Server.CreateObject("TEST.dosm")
response.write obj.test()
%>
瀏覽這個.asp檔時顯示"Hello, world!", 成功呼叫進行其他操作也是類似。
注意事項:
1.如果要在其他機器上使用這個元件,則把產生的.dll檔案拷貝到對應的機器上,然後用"regasm your.dll /codebase" 進行註冊,regasm 這個程式在"%SystemRoot% Microsoft.NETFramework%FrameworkVersion%"目錄下。
2.返回的資料型態可能有一些限制,例如數組類型,在vbscript中就不太好訪問(我沒有試出來:( ),不知大家有什麼好方法
3.被調用的函數不能是靜態函數,否則會找不到。