一、 VBS
1. 周期调用
tmpTimer = setInterval("CheckImport()", 100)
clearInterval(tmpTimer)
2. recordset对象
Set RsDetail = server.CreateObject("ADODB.Recordset")
RsDetail.Close
Set RsDetail. = nothing
IsObject(Rs_Media_Field):判断对象是否实列
Rs_Media_Field Is Nothing : 判断对象是空为空值
Rs_Media_Field.recordcount < 1 :判断记录集记录不为空
3. fso对象
Set Fso1 = CreateObject("Scripting.FileSystemObject")
If Not Fso1.FolderExists(tmpFilePath) Then
Fso1.CreateFolder tmpFilePath
Set a = Fso1.OpenTextFile(SelFile.path, 1, False) ‘a :stream
Do While Not a.atEndOfStream
linetext = a.readline
4. execl对象
Set xlsobj = CreateObject("excel.application")
xlsFilename = ""& Downloadpath & "/Taiwan/Sy_Sov_import.xlt"
xlsobj.Workbooks.Open (xlsFilename)
xlsobj.Visible = FALSE
Call xlsobj.Run("GetImportData", fileEndLine,ObjExcel,rsData,rsTableName)
5. ado对象
Set conn = CreateObject("ADODB.Connection")
Set comm = CreateObject("ADODB.Command")
conn.CursorLocation = adUseClient
conn.Open Session("sConnString")
Set comm.ActiveConnection = conn
comm.CommandTimeout = 60
comm.CommandText = "USP_RO_BookOrder_Post_BySchedule"
comm.CommandType = adCmdStoredProc
comm.Execute
Set comm = Nothing
conn.Close
Set conn = Nothing
6. table 对象中新增行
Set myNewCell = SupplierTable.rows(SupplierTable.rows.length-1).insertCell()
myNewCell.id="tdNo"
myNewCell.align="Left"
myNewCell.innerHTML="<span id='spNo'>" & inr & "</span>"
7. Select Case 语句
Select Case Trim(byField.value)
Case "MediaType"
strCode = "MediaTypeCode"
strName = "MediaTypeCode"
Case "Channel"
strCode = "ChannelCode"
strName = "ChannelName"
Case "Supplier"
strCode = "SupplierCode"
strName = "SupplierName"
Case "Market"
strCode = "MarketCode"
strName = "MarketName"
End Select
8. Select中增加option项
Set aOption = document.createelement("Option")
aOption.Text = Trim(source.Options(i).Text)
target.Options.Add aOption
9. RDO远程对数据对象
<object classid=" CLSID:BD96C556-65A3-11D0-983A-00C04FC29E36" height="1" id="ADS" width = "1" ></object>
this.plan_summary = ADS.CreateObject("planning_schedule_server.summary",this.rdsip);
10.回车符:vbcrlf
二、 Javascript
1. 打开窗口
window.showModalDialog();
var returnVal = window.showModalDialog("RO_BookingOrder_PostResult.asp", self, "dialogWidth:650px; dialogHeight:500px; status:no; scroll:no");
var G_srcWindow = window.dialogArguments; //访问打开窗口的窗口
var oPop = window.open(/"WebPages/Forms/MainFrame/Main.aspx/", /"MyMedia/", /"toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes/");
oPop.moveTo(0, 0);
oPop.resizeTo(screen.width, (screen.height - 30));
2. 隐藏控件
row_select.style.display='none';
row_select.style.display='';
3. 全屏打开窗口
window.open(parValue,"win1","scrollbars=1,status=1,resizable=1,top=0,left=0,height=" + window.screen.height + ",width=" + window.screen.width);
window.opener.AddProduct() :调用打开窗口中的事件
4. 定时刷新
window.setTimeout("window.frmPost.submit()", 200);
5. XML服务
oXmlHttp = new ActiveXObject('Microsoft.XMLHttp')
oXmlHttp.onreadystatechange=initCategory; oXmlHttp.open('POST','http://trash/xmldata/xmlcategories.aspx',true); oXmlHttp.setRequestHeader("Content-Length",0); oXmlHttp.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded"); oXmlHttp.send();
oXmlHttp.readyState==4
oXmlHttp.status==200
oXmlDom = new ActiveXObject('Microsoft.XMLDOM')
6.动态加载事件到控件上
<script event=onclick for=cmdSearch language="javascript">
tdc_TargetCode.DataURL ="tdc_MapTarget.asp”;
tdc_TargetCode.Reset() ;
</script>
<table id=TargetCodetable datasrc=#tdc_TargetCode>
<thead>
<tr bgcolor="#ccccff" class="cssAlternatingCell02" height="30" align=middle>
<td width="40">Select</td>
<td>Target Code</td>
<td>Target Name<input type="hidden" name="txtpagecount" >
<input type="radio" style="DISPLAY: none" name="pageradio">
</td></tr>
<tr bgcolor="#ffffff" id=TargetCoderows align="middle" >
<td width="40"><input type="radio" name="TargetCoderadio" οnclick="SetText()">
</td>
<td><div dataFld="Targetcode" ></div></td>
<td> <div dataFld="Targetname" ></div> <input type="hidden" dataFld=PageCount name="txtpagecount" ></td>
</tr>
</table>
7.动态生成控件
oOption = document.createElement("OPTION");
oOption.text = text;
oOption.value = value;
8. 根据分辨率来确定位置
<div id="inputunit" style="HEIGHT: 115px; LEFT: Expression((screen.width - 778) / 2 + 468); POSITION: absolute; TOP: 261px; WIDTH: 220px; Z-INDEX: 3">
10. 窗体返回值
val = retVal ; …
window.returnValue = retVal ;
11. <a>控件可触发两个事件
<a href="javascript: DeleteItem() ; "
language="javascript" οnclick="return ConfirmDelete()">
<img src="images/itemDelete.gif" border="0" alt="Delete this item">
</a>
12. 在javascript 中访问 控件
document.all.txtClient.value : txt控件的值
typeof(document.all.drpCurrency) != "undefined" //判断是否有定义
document.all("frmTitle").style.display="none" : frmTitle是<body>内的一个<td>
var el = window.event.srcElement; //得到触发事件的控件
13. Div 加滚轮
<div id="div1" style=" width: 100%; height: 100%; overflow:auto;">
<div id=div0 style="width: 100%; height:expression(screen.height - 138); overflow: auto;">
14. 动态创建控件
drag = document.createElement("DIV");
document.body.insertBefore(drag);
15. 框架间的方法调用
parent.frames('middleFrame').HideTree('FinancialEnquiry')
16. 访问table中某行某列的值
PowerTable.rows[0].children[i]
//PowerTable.rows[0].[i]
cellIndex 单元格的列号 , rowIndex行号
17. 定义页面装载事件
function window.onload(){}
18. 间隔执行方法
window.setTimeout(OpenWindow, 1000); //只执行一次
window. setInterval(OpenWindow, 1000); //每隔一段时间执行一次
19.
三、 C#
1.类:System.Web.Services.Protocols.SoapHttpClientProtocol
Invoke():远程异部调用WebService
2. SoapHttpClientProtocol属性定义
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetSFileData", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
3.Excel输出(aspx页面以excel形式输出)
Response.ContentEncoding = System.Text.Encoding.GetEncoding(“utf-8”);//
Response.ContentType = "application/vnd.ms-excel";
Response.Charset =”utf-8”;
4.服务器的机器名与域名获取
Server.MachineName
Request.ServerVariables["HTTP_HOST"] //带端口号
5.获取服务器控件呈现在HTML后的控件名
btnName.ClientID
6. 属性动态加载客户端事件
imgBtnChn.Attributes["onclick"] = "return imgSuppliers()";
7. 定义事务
SqlTransaction myTrans=null;
sqlCon.Open();
myTrans=sqlCon.BeginTransaction();
SqlCommand sqlCmd=new SqlCommand(strSQL,sqlCon);
sqlCmd.Transaction=myTrans;
sqlCmd.ExecuteNonQuery();
myTrans.Commit();
8. GridView 对象
AutoGernateColumns 属性:根据datasource自动生成columns
9. ClientScriptManager 对象
ClientScript.RegisterStartupScript(typeof(Page),"Pass", strScript)
//Registers the startup script with the Page object
10.String Format功能
string sql = string.Format("Select *,isnull( DateDiff(mi, getDate(),ExpireDate) , 0) as dt from [cd_us_user] myUser Where Uid = '{0}'", uID);
11. 二维数组的定义
int[] a = new int[] { 1 ,2 ,3 };
int[ , ] b = new int[ ,] { { 1, 1, 1 }, { 2, 2, 2 } };//二维数组
int[][] c = new int[][] { new int[]{ 1, 2, 3 }, new int[]{ 1,2,3,4} }; //数组的数组
int[][] d = new int[][] {a, a};
12.暂停paint
this.SuspendLayout();
this.ResumeLayout(false);
13.只实例一个窗体 ----??????
只要注意,创建窗体B的时候,把原来的 new FormB(); -->换成 FormB frm = FormB.CreateInstance;就可以了,这样可以在当前进程中,保证窗体B的实例,只有一个.
14. 休眠
// 休眠以在中断发出时捕捉中断。
System.Threading.Thread.Sleep(100);
15. GridView中的数据绑定
<%# DataBinder.Eval(Container.DataItem,"ClientDepartmentID") %>
16.ReadOnly 属性的BUG
在给TextBox 控制的属性给ReadOnly 属性如 TextBox tb.ReadOnly = True ;时,后台将不能访问该TextBox.Text属性,客户端给值后将无法在服务器端识别。
改用客户端赋值:tb.Attribute[“ReadOnly”] = “ture”
四、 VB.NET
1. 邮件发送
Dim smtp As String = PublicInterfaceIMIX.strSmtpServer
Dim mailto As String() = PublicInterfaceIMIX.strMailTo.Split(";")
If mailto.Length < 1 Then Return '如果没有设置接收的邮箱则不发送邮件
Dim mailfrom As String = PublicInterfaceIMIX.strMailFrom
Dim subject As String = "[SAPInterface Notification]From " + PublicInterfaceIMIX.strCountry
Dim content As String = "dear all,<br>We've not received ftp file(s) from SAP today.<br>" + DateTime.Now.ToString("F")
Dim myMail As MailMessage = New MailMessage()
myMail.From = mailfrom
myMail.To = mailto(0)
Dim i As Integer
For i = 1 To mailto.Length - 1
myMail.Cc = mailto(i)
Next
myMail.Subject = subject
myMail.BodyFormat = MailFormat.Html
myMail.Body = content
SmtpMail.SmtpServer = smtp
SmtpMail.Send(myMail)
End If
2. 多线程的调用方法
If PublicInterfaceIMIX.strStartOption = "1" Then
IMIXToSAP = New Thread(AddressOf IMIXToSAPStart)
IMIXToSAP.Start()
ElseIf PublicInterfaceIMIX.strStartOption = "2" Then
SAPToIMIX = New Thread(AddressOf SAPToIMIXStart)
SAPToIMIX.Start()
ElseIf PublicInterfaceIMIX.strStartOption = "3" Then
IMIXToSAP = New Thread(AddressOf IMIXToSAPStart)
SAPToIMIX = New Thread(AddressOf SAPToIMIXStart)
SAPToIMIX.Start()
IMIXToSAP.Start()
End If
五、 HTML
1.控件
1) <INPUT id=txtVendor name=txtVendor style="HEIGHT: 22px; WIDTH: 80px" readonly>
2) <INPUT id=cmdVendor name=cmdVendor style="HEIGHT: 22px; WIDTH: 20px" type=button value=...>
3) <SELECT id=selMediaType class="cssInputBoxPicker" name=selMediaType style="HEIGHT: 22px; WIDTH: 110px">
<OPTION selected></OPTION>
</SELECT>
2.将一页面的输出做为另一页面的数据源
<table width=1200 border="0" id=OrderData dataSrc=#SearchOrder>
<tr align="left" bgcolor="#e8e8e8" >
<Td><input type="checkbox" name="chkbox" id=checkMark οnclick="javascript:set_Select()" >
<input type="hidden" name="hidden1" id="PageNo" dataFld="PageNo">
</td><td>
<div dataFld="OrderNo"></div>
<input type="hidden" id="orderno" dataFld="OrderNo">
<input type="hidden" id="Order_ID" dataFld="Order_ID">
</td><td >
<div dataFld="OrderVersion"></div>
<input type="hidden" id="orderversion" dataFld="OrderVersion">
</td>
<td ><div dataFld="ClientCode"></div></td>
<td ><div dataFld="ProductCode"></div></td>
<td><div dataFld="SupplierCode"></div></td>
<td ><div dataFld="Market"></div></td>
<td ><div dataFld="MediaTypeCode"></div></td>
<td ></tr>
</table>
<script language=’javascript’>
function findit(inaction){
SearchOrder.dataurl="tdc_SearchOrderTransfer.asp "
SearchOrder.reset();
}
</script>
/* tdc_SearchOrderTransfer.asp页面*/
<%@ Language=VBScript %>
<%
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"
response.buffer=0
%>
Set conn = server.CreateObject("adodb.connection")
Set rs = server.CreateObject("adodb.recordset")
Set rs2 = server.CreateObject("adodb.recordset")
conn.Open session("sConnString")
sql = "select t1.Order_ID,t1.OrderNo, t1.OrderVersion,t1.ClientCode,t1.ProductCode,
t1.SupplierCode,t1.Market,t1.MediaTypeCode,t1.ChannelCode,t1.StartDate,t1.EndDate,
t2.user_name from Order_Master t1 "
sql = sql & " left join UserAdmin.dbo.USERS t2 on t2.USER_ID=t1.createby where 1=1 "
rs.Open sql, conn, 3
If Not rs.EOF Then
rs.AbsolutePage = CInt(inpageno)
response.write "Order_ID,OrderNo,OrderVersion,ClientCode,ProductCode, SupplierCode,Market,MediaTypeCode,ChannelCode,StartDate,EndDate,UserName,PageNo"
response.write Chr(10)
For i = 1 To rs.pagesize
If rs.EOF Then Exit For
tmpproduct = Trim(rs("ProductCode"))
tmpclient = Trim(rs("ClientCode"))
tmpproduct = iif(InStr(tmpproduct, ",") > 0, Replace(tmpproduct, ",", "/"), tmpproduct)
tmpclient = iif(InStr(tmpclient, ",") > 0, Replace(tmpclient, ",", "/"), tmpclient)
response.write CStr(rs("Order_ID")) & "," & CStr(rs("OrderNo")) & "," & CStr(rs("OrderVersion")) & "," & tmpclient & "," & tmpproduct & "," & Trim(rs("SupplierCode")) & "," & Trim(rs("Market")) & "," & Trim(rs("MediaTypeCode")) & "," & Trim(rs("ChannelCode")) & "," & rs("startdate") & "," & rs("enddate") & "," & rs("user_name") & "," & rs.pagecount
response.write Chr(10)
rs.movenext
Next
End If
六、 .NET2005
1. Generics Class :(通用类)
// Declare the generic class
public class MyList<T>
{....// }
// Declare a list of type int
MyList<int> list1 = new MyList<int>();
// Declare a list of type string
MyList<string> list1 = new MyList<string>();
// Declare a list of type MyClass
MyList<MyClass> list1 = new MyList<MyClass>();
2. 客户端取dropdownlist值
obj.options[obj.options.selectedIndex].value //obj 为dropdownlist的ID
3.
七、 应用
1.将outlook放入托盘
工作中常常打开很多窗口和应用程序,这样任务栏中就显得比较拥挤,而Microsoft Outlook软件又是必须打开的软件,有什么办法让它只显示系统托盘中呢?
1) 打开注册表编辑器:开始-运行:输入regedit。
2) 找到“HKEY_CURRENT_USER/Software/Microsoft/Office/10.0/Outlook/Preferences”键值,然后右击空白区域,新建一个DWORD值“MinToTray”,并设键值为1。
3) 重新启动Microsoft Outlook软件,然后点击最小化按钮。
Microsoft Outlook软件是不是跑到系统托盘中去了?如果再配置一下“新邮件到达时给出通知”设置,那就不用时不时去查看邮件了。
2. Dreamweaver中出现乱码,大致为两种情况:
一是没有标明主页制作所用的文字,这种情况下很简单就可以解决,加上说明即可。
二是你新加装了字体,(诸如文鼎酷字体之类),这样你每次新建一个网页,都要调整一次,非常麻烦。那么你可以用下面的方法解决。
请先备份注册表,退出运行中的Dreamweaver。
1.运行regedit.exe。
2.找到HKEY_CURRENT_USER/SOFTWARE/MACROMEDIA/DREAMWEAVER 4/FONT PREFERENCES
接下来有2个方案:
简便方案:
双击Number Encodings,把数值b改成c(十进制的11改成12);退出regedit,进入Dreamweaver,现在你就可以随意地选择PROPOTIOANL,FIXED FONT,CODE INSPECTOR的字体和文字大小了!
完美方案:
为什么简便方案还不够呢?因为仅做上述改动,就只能选择中文字体,而有些情况下,一些英文字体会比中文字体好看(比如我在CODE INSPECTOR里面就选用ARIAL字体,比宋体、仿宋什么的要好看多了),而且对中文部分也能正确显示。
方法如下:
在HKEY_CURRENT_USER/SOFTWARE/MACROMEDIA/DREAMWEAVER 4/FONT PREFERENCES下,双击Number Encodings,把数值b改成c(十进制的11改成12);进入CharEncoding_11,对内部数值进行修改:
注意最好只改动以下值:
Fixed Name :字体名称
Fixed Size :字体大小
HTML inspector font :字体名称
HTML inspector font size :字体大小
Proportional Name :字体名称
Proportional Size :字体大小
如果感到不满意,也可尝试把:Fixed CharSet、Proportional CharSet、Windows Character Set从86(十进制的134,表示中文)改成00(代表英文)。
对于简便方案,这里还有一个更简单的实现方法,把以下代码复制下来,保存成为一个后缀是.reg的文件(要注意一定要为纯文本方式),然后执行这个reg文件,修改就会自动完成(也请先备份注册表)。
REGEDIT4 [HKEY_CURRENT_USER/Software/Macromedia/Dreamweaver 4/Font Preferences] "Number Encodings"=dword:0000000c"Default Encoding"=dword:00000005
3. Dos 命令
Ping –a ip : 可以查看该计算机的电脑名
八、 WSE3.0
九、 WebService
1. 加密,解密
需要引用DataSetSurrogate.dll,在网上可以下到
Web Service端加密
[WebMethod]
public byte[] ReSerializeDataSet()
{
this.sadp.Fill(this.ds);
this.ds.Tables[0].TableName="table1";
this.ds.Tables[1].TableName="table2";
DataSetSurrogate sds=new DataSetSurrogate(this.ds);
MemoryStream ms=new MemoryStream();
BinaryFormatter fb=new BinaryFormatter();
fb.Serialize(ms,sds);
byte[] e=ms.ToArray();
return e;
}
=============================================================================Windows Application端解密
public DataSet GetDataSet()
{
DataSet ds=new DataSet();
DataSetSurrogate sds;
BinaryFormatter bf=new BinaryFormatter();
MemoryStream ms;
byte[] e=null;
ReturnDataSet rds=new ReturnDataSet(ConfigurationSettings.AppSettings["url"]);
rds.Credentials=System.Net.CredentialCache.DefaultCredentials;
e=rds.ReSerializeDataSet();
ms=new MemoryStream(e);
object o=bf.Deserialize(ms);
sds=(DataSetSurrogate)o;
ds=sds.ConvertToDataSet();
ms.Close();
return ds;
}
2. 调用
2.1)客户端javascript
//Test function with get method.
function RequestByGet(data){
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
//Webservice location.
var URL="http://localhost:1323/WebSite6/Service.asmx/SayHelloTo?Name=Zach";
xmlhttp.Open("GET",URL, false);
xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8");
xmlhttp.SetRequestHeader ("SOAPAction","http://tempuri.org/SayHelloTo");
xmlhttp.Send(data);
var result = xmlhttp.status;
//OK
if(result==200) {
document.write(xmlhttp.responseText);
}
xmlhttp = null;
}
//Test function with post method
function RequestByPost(value)
{
var data;
data = '<?xml version="1.0" encoding="utf-8"?>';
data = data + '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">';
data = data + '<soap:Body>';
data = data + '<SayHelloTo xmlns="http://tempuri.org/">';
data = data + '<Name>'+value+'</Name>';
data = data + '</SayHelloTo>';
data = data + '</soap:Body>';
data = data + '</soap:Envelope>';
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var URL="http://localhost:1323/WebSite6/Service.asmx";
xmlhttp.Open("POST",URL, false);
xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=gb2312");
xmlhttp.SetRequestHeader ("SOAPAction","http://tempuri.org/SayHelloTo");
xmlhttp.Send(data);
document.write( xmlhttp.responseText);
}
2.2)动态调用
/// <summary>
/// 根据指定的信息,调用远程WebService方法
/// </summary>
/// <param name="url">WebService的http形式的地址</param>
/// <param name="namespace">欲调用的WebService的命名空间</param>
/// <param name="classname">欲调用的WebService的类名(不包括命名空间前缀)</param>
/// <param name="methodname">欲调用的WebService的方法名</param>
/// <param name="args">参数列表</param>
/// <returns>WebService的执行结果</returns>
/// <remarks>
/// 如果调用失败,将会抛出Exception。请调用的时候,适当截获异常。
/// 异常信息可能会发生在两个地方:
/// 1、动态构造WebService的时候,CompileAssembly失败。
/// 2、WebService本身执行失败。
/// </remarks>
/// <example>
/// <code>
/// object obj = InvokeWebservice("http://localhost/GSP_WorkflowWebservice/common.asmx","Genersoft.Platform.Service.Workflow","Common","GetToolType",new object[]{"1"});
/// </code>
/// </example>
private object InvokeWebservice(string url, string @namespace, string classname, string methodname, object[] args)
{
try
{
System.Net.WebClient wc = new System.Net.WebClient();
System.IO.Stream stream = wc.OpenRead(url+"?WSDL");
System.Web.Services.Description.ServiceDescription sd = System.Web.Services.Description.ServiceDescription.Read(stream);
System.Web.Services.Description.ServiceDescriptionImporter sdi = new System.Web.Services.Description.ServiceDescriptionImporter();
sdi.AddServiceDescription(sd,"","");
System.CodeDom.CodeNamespace cn = new System.CodeDom.CodeNamespace(@namespace);
System.CodeDom.CodeCompileUnit ccu = new System.CodeDom.CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn,ccu);
Microsoft.CSharp.CSharpCodeProvider csc = new Microsoft.CSharp.CSharpCodeProvider(); System.CodeDom.Compiler.ICodeCompiler icc = csc.CreateCompiler(); System.CodeDom.Compiler.CompilerParameters cplist = new System.CodeDom.Compiler.CompilerParameters();
cplist.GenerateExecutable = false; cplist.GenerateInMemory = true; cplist.ReferencedAssemblies.Add("System.dll"); cplist.ReferencedAssemblies.Add("System.XML.dll"); cplist.ReferencedAssemblies.Add("System.Web.Services.dll"); cplist.ReferencedAssemblies.Add("System.Data.dll"); System.CodeDom.Compiler.CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);
if(true == cr.Errors.HasErrors)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach(System.CodeDom.Compiler.CompilerError ce in cr.Errors)
{
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
throw new Exception(sb.ToString());
}
System.Reflection.Assembly assembly = cr.CompiledAssembly;
Type t = assembly.GetType(@namespace+"."+classname,true,true);
object obj = Activator.CreateInstance(t);
System.Reflection.MethodInfo mi = t.GetMethod(methodname);
return mi.Invoke(obj,args);
}
catch(Exception ex)
{
throw new Exception(ex.InnerException.Message,new Exception(ex.InnerException.StackTrace));
}
}
2.3) ASP中调用
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Dim strxml
Dim str
'定义soap消息
strxml = "<?xml version='1.0' encoding='tf-8'?>"
strxml = strxml & "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
strxml = strxml & "<soap:Body> "
strxml = strxml & "<isNumner xmlns='http://tempuri.org/myService/test'>"
strxml = strxml & "<str>4</str>"
strxml = strxml & "</isNumner>"
strxml = strxml & "</soap:Body>"
strxml = strxml & "</soap:Envelope>"
'定义一个XML的文档对象,将手写的或者接受的XML内容转换成XML对象
'set x = createobject("Microsoft.DOMDocument")
'初始化XML对象
'将手写的SOAP字符串转换为XML对象
' x.loadXML strxml
'初始化http对象
Set h = createobject( "Microsoft.XMLHTTP")
'向指定的URL发送Post消息
h.open "POST", "http://localhost/myService/test.asmx", False
h.setRequestHeader "Content-Type", "text/xml"
h.setRequestHeader "SOAPAction", "http://tempuri.org/myService/test/isNumner"
h.send (strxml)
While h.readyState <> 4
Wend
'显示返回的XML信息
str = h.responseText
'将返回的XML信息解析并且显示返回值
'Set x = createobject("MSXML2.DOMDocument")
' x.loadXML str
'str = x.childNodes(1).Text
response.write(str)
%>