正確處理WCF文件及解決方案
作者:佚名
WCF文件作為一個高效的.NET程序語言。其混合了函數(shù)語言和物件導(dǎo)向程序編制語言,并且完美的適用于編程、算法、技術(shù)和探索性開發(fā),因此可以在使用的過程當(dāng)中感受到趣味性和吸引力。
雖然有許多人對WCF文件的使用性表示懷疑,但在年復(fù)一年的不斷發(fā)展中,但前提是要深入理解到底什么是WCF文件,及WCF是怎么運作的。 下面就對WCF文件進行深一步的介紹。。。
這樣,既不用添加服務(wù)引用,也不需要生成代理。文件傳輸?shù)暮瘮?shù)不是很難,代碼如下:
- publicvoidTransferFile(FileTransferMessagerequest)
- {
- stringlogInfo;
- Program.Get_ILog().Log(logInfo=string.Format("開始接收文件,name={0}",request.FileName));//填寫日志
- //文件信息
- stringuploadFolder=AppValue.GetParam()._saveDir;
- stringsavaPath=request.SavePath;
- stringfileName=request.FileName;
- StreamsourceStream=request.FileData;
- FileStreamtargetStream=null;
- //判斷文件是否可讀
- if(!sourceStream.CanRead)
- {
- thrownewException("數(shù)據(jù)流不可讀!");
- }
- if(savaPath==null)savaPath=@"文件傳輸\";
- if(!savaPath.EndsWith("\\"))savaPath+="\\";
- if(!uploadFolder.EndsWith("\\"))uploadFolder+="\\";
- uploadFolderuploadFolder=uploadFolder+savaPath;
- //創(chuàng)建保存文件夾
- if(!Directory.Exists(uploadFolder))
- {
- Directory.CreateDirectory(uploadFolder);
- }
- intfileSize=0;
- stringfilePath=Path.Combine(uploadFolder,fileName);//Combine合并兩個路徑
- try
- {
- 文件流傳輸
- using(targetStream=newFileStream(filePath,FileMode.Create,FileAccess.Write,FileShare.None))
- {
- 定義文件緩沖區(qū)
- constintbufferLen=4096;
- byte[]buffer=newbyte[bufferLen];
- intcount=0;
- while((count=sourceStream.Read(buffer,0,bufferLen))>0)
- {
- targetStream.Write(buffer,0,count);
- fileSize+=count;
- }
- targetStream.Close();
- sourceStream.Close();
- }
- }
- catch(Exceptionex)
- {
- Program.Get_ILog().Log(logInfo+ex.Message);
- }
- Program.Get_ILog().Log(string.Format("接收文件完畢name={0},filesize={1}",
- request.FileName,fileSize));
- }
WCF文件其他的代碼感興趣的朋友下載來研究吧!
【編輯推薦】
- 專家教您WCF異步調(diào)用方法
- 對WCF異步調(diào)用進行服務(wù)操作
- 闡述WCF學(xué)習(xí)相關(guān)經(jīng)驗
- 對WCF框架服務(wù)模型簡介
- 詳細分析WCF控件使用問題
責(zé)任編輯:chenqingxiang
來源:
51CTO.com