系列文章導(dǎo)航:
創(chuàng)建一個(gè)示例和WebMethod特性解析
WebService特性和數(shù)組類型解析
類和結(jié)構(gòu)體解析
利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)
Webservice 的設(shè)計(jì)和模式
Remoting和Webservice的區(qū)別
現(xiàn)在開始學(xué)習(xí)Web服務(wù),寫下自己學(xué)習(xí)過程中的一些感受,拿出來與大家分享,歡迎批評(píng)指正。希望能給跟我一樣初學(xué)Web服務(wù)的朋友一些幫助。
今天學(xué)習(xí)了Web服務(wù)的類和結(jié)構(gòu)體一節(jié),晚上寫下自己所理解的內(nèi)容,跟大家一起分享了。請(qǐng)批評(píng)指正。
Web服務(wù)能夠把用戶定義的類和結(jié)構(gòu)體作為參數(shù)或者返回值,但是這里需要記住一些規(guī)則,是關(guān)于那些類變量可以在Web服務(wù)中使用的:
(1)所有類變量必須是基本數(shù)據(jù)類型或者基本數(shù)據(jù)類型的數(shù)組。
(2)所有類變量必須是公開的或者有一個(gè)公開時(shí)限的get和set訪問器的屬性。
為了理解在Web服務(wù)中使用類,我做了個(gè)實(shí)驗(yàn)。創(chuàng)建Web服務(wù),在其中添加一個(gè)數(shù)組。
//構(gòu)造并填充info數(shù)組

string[,] strStuInfo =
{

{"200511020120","貳零零五屆","人文法律學(xué)院","社會(huì)工作","(1)班","賀無悔","1"},

{"200511020121","貳零零五屆","人文法律學(xué)院","社會(huì)工作","(1)班","賀梁需","2"},

{"200511010122","貳零零五屆","人文法律學(xué)院","法律專業(yè)","(1)班","賀陸磊","3"},

{"200511010220","貳零零五屆","人文法律學(xué)院","法律專業(yè)","(2)班","賀白靈","4"},

{"200511010221","貳零零五屆","人文法律學(xué)院","法律專業(yè)","(2)班","李劍付","5"},

{"200511020222","貳零零五屆","人文法律學(xué)院","社會(huì)工作","(2)班","李敬意","6"},

{"200511100120","貳零零五屆","化工生物學(xué)院","生物制藥","(1)班","李黃興","7"},

{"200511100221","貳零零五屆","化工生物學(xué)院","生物制藥","(2)班","李蕾蕾","8"},

{"200511100322","貳零零五屆","化工生物學(xué)院","生物制藥","(3)班","杜白冰","9"},

{"200611120120","貳零零六屆","化工生物學(xué)院","發(fā)酵工程","(1)班","杜書并","10"},

{"200611120121","貳零零六屆","化工生物學(xué)院","發(fā)酵工程","(1)班","杜小魚","11"},

{"200611120421","貳零零六屆","化工生物學(xué)院","發(fā)酵工程","(4)班","杜聲聲","12"},
}; 系列文章導(dǎo)航:
創(chuàng)建一個(gè)示例和WebMethod特性解析
WebService特性和數(shù)組類型解析
類和結(jié)構(gòu)體解析
利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)
Webservice 的設(shè)計(jì)和模式
Remoting和Webservice的區(qū)別
下面我們要做的就是添加一個(gè)類,第一個(gè)類定義StuInfo,由五個(gè)字符串、一個(gè)StudentInfo類型的數(shù)組和一個(gè)公共屬性組成。公共屬性對(duì)應(yīng)了一個(gè)私有的字符串。StudentInfo類則由一個(gè)名為intStuRank的學(xué)生排名和strStuCollege的學(xué)生所屬學(xué)院組成。并添加以下的代碼:
public class StuInfo

{
public string strStuNum;
public string strStuYear;
public string strStuCollege;
public string strStuClass;
public string strStuName;

public StudentInfo[] Information = new StudentInfo[2];

private string strInfo;
public string Info

{
set

{
strInfo = value;
}
get

{
return strInfo;
}
}

public class StudentInfo

{
public int intStuRank;
public string strStuCollege;
}
} 系列文章導(dǎo)航:
創(chuàng)建一個(gè)示例和WebMethod特性解析
WebService特性和數(shù)組類型解析
類和結(jié)構(gòu)體解析
利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)
Webservice 的設(shè)計(jì)和模式
Remoting和Webservice的區(qū)別
在Web服務(wù)中,我們添加GetStuInfo方法,它使用了StuInfo類為傳入的strStuNum返回的學(xué)生信息的歷史數(shù)據(jù)。代碼如下:
[WebMethod(Description = "通過類返回學(xué)生信息的歷史數(shù)據(jù)")]
public StuInfo GetStuInfo(string strStuNum)

{
StuInfo stuinfo = new StuInfo();

//遍歷數(shù)組,尋找strStuName
for (int i = 0; i < strStuInfo.GetLength(0); i++)

{
if (String.Compare(strStuInfo[i, 0], strStuNum, true) == 0)

{
stuinfo.strStuNum = strStuNum;
stuinfo.strStuYear = strStuInfo[i, 1];
stuinfo.strStuCollege = strStuInfo[i, 2];
stuinfo.strStuClass = strStuInfo[i, 3];
stuinfo.strStuName = strStuInfo[i, 5];
stuinfo.Info = "通過類返回學(xué)生相關(guān)信息";

//保存StuInfo數(shù)據(jù)
stuinfo.Information[0] = new StuInfo.StudentInfo();
stuinfo.Information[0].intStuRank = 5;
stuinfo.Information[0].strStuCollege = "人文法律學(xué)院";

stuinfo.Information[1] = new StuInfo.StudentInfo();
stuinfo.Information[1].intStuRank = 3;
stuinfo.Information[1].strStuCollege = "化工生物學(xué)院";

return stuinfo;
}
}
stuinfo.strStuNum = strStuNum;
stuinfo.strStuName = "沒有找到人員";
return stuinfo;
} 系列文章導(dǎo)航:
創(chuàng)建一個(gè)示例和WebMethod特性解析
WebService特性和數(shù)組類型解析
類和結(jié)構(gòu)體解析
利用YAHOO公開API做天氣預(yù)報(bào)Web服務(wù)
Webservice 的設(shè)計(jì)和模式
Remoting和Webservice的區(qū)別
(一)創(chuàng)建發(fā)現(xiàn)文檔
一旦創(chuàng)建完成Web服務(wù),負(fù)責(zé)開發(fā)Web服務(wù)使用程序的開發(fā)人員需要找到一種方法,從而能夠了解服務(wù)器上有哪些Web服務(wù)可用,這些Web服務(wù)提供了那些方法,這些方法和屬性可接受那些參數(shù),以及這些Web方法的返回值是什么,這個(gè)過程叫做發(fā)現(xiàn)。
當(dāng)然這是一個(gè)可選的過程,如果使用程序的開發(fā)人員了解Web服務(wù)文件的URL,那么這就不需要實(shí)施發(fā)現(xiàn)動(dòng)作。
(1)利用查詢字符串實(shí)現(xiàn)發(fā)現(xiàn)
開發(fā)者可以獲得在服務(wù)器中的DISCO文件來創(chuàng)建一個(gè)客戶端應(yīng)用程序。如果需要查看這個(gè)文件,可以在Web服務(wù)的文件后面加上?disco,效果如下圖:

(2)靜態(tài)發(fā)現(xiàn)文件
如果Web服務(wù)的使用程序需要使用靜態(tài)發(fā)現(xiàn)文件,那么Web服務(wù)開發(fā)人員必須創(chuàng)建一個(gè)靜態(tài)發(fā)現(xiàn)文件。
雖然可以手工創(chuàng)建.disco文件,但是使用disco.exe命令行工具遠(yuǎn)比那樣簡(jiǎn)單的多。打開命令行窗口(這里可不是在運(yùn)行中打CMD的那個(gè),而是Visual Studio 2008命令提示,從而可以獲得正確的路徑),然后鍵入與下面類似的命令(整行命令必須寫在一行中):
disco Web服務(wù)的地址
如果想看DISCO工具的完整參數(shù)清單,鍵入:disco/? 命令。
(二)預(yù)編譯程序集
典型的部署目錄結(jié)構(gòu)圖(沒裝PS,用VISIO話的,大家將就將就吧)

NET技術(shù):類和結(jié)構(gòu)體解析,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。