本文整理汇总了C#中LumiSoft.Net.IO.SmartStream.ReadAll方法的典型用法代码示例。如果您正苦于以下问题:C# SmartStream.ReadAll方法的具体用法?C# SmartStream.ReadAll怎么用?C# SmartStream.ReadAll使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LumiSoft.Net.IO.SmartStream
的用法示例。
在下文中一共展示了SmartStream.ReadAll方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
//.........这里部分代码省略.........
// This is last entity, stop parsing
if(childEntity.Parse(stream,boundaryID) == false){
break;
}
// else{
// There are more entities, parse them
}
// This entity is child of mulipart entity.
// All this entity child entities are parsed,
// we need to move stream position to next entity start.
if(!string.IsNullOrEmpty(toBoundary)){
stream.ReadLine(args,false);
if(args.Error != null){
throw args.Error;
}
lineString = args.LineUtf8;
while(lineString != null){
if(lineString.StartsWith("--" + toBoundary)){
break;
}
stream.ReadLine(args,false);
if(args.Error != null){
throw args.Error;
}
lineString = args.LineUtf8;
}
// Invalid boundary end, there can't be more entities
if(string.IsNullOrEmpty(lineString)){
return false;
}
// See if last boundary or there is more. Last boundary ends with --
if(lineString.EndsWith(toBoundary + "--")){
return false;
}
// else{
// There are more entities
return true;
}
}
}
// Singlepart entity.
else{
// Boundary is specified, read data to specified boundary.
if(!string.IsNullOrEmpty(toBoundary)){
MemoryStream entityData = new MemoryStream();
SmartStream.ReadLineAsyncOP readLineOP = new SmartStream.ReadLineAsyncOP(new byte[32000],SizeExceededAction.JunkAndThrowException);
// Read entity data while get boundary end tag --boundaryID-- or EOS.
while(true){
stream.ReadLine(readLineOP,false);
if(readLineOP.Error != null){
throw readLineOP.Error;
}
// End of stream reached. Normally we should get boundary end tag --boundaryID--, but some x mailers won't add it, so
// if we reach EOS, consider boundary closed.
if(readLineOP.BytesInBuffer == 0){
// Just return data what was readed.
m_EncodedData = entityData.ToArray();
return false;
}
// We readed a line.
else{
// We have boundary start/end tag or just "--" at the beginning of line.
if(readLineOP.LineBytesInBuffer >= 2 && readLineOP.Buffer[0] == '-' && readLineOP.Buffer[1] == '-'){
string lineString = readLineOP.LineUtf8;
// We have boundary end tag, no more boundaries.
if(lineString == "--" + toBoundary + "--"){
m_EncodedData = entityData.ToArray();
return false;
}
// We have new boundary start.
else if(lineString == "--" + toBoundary){
m_EncodedData = entityData.ToArray();
return true;
}
else{
// Just skip
}
}
// Write readed line.
entityData.Write(readLineOP.Buffer,0,readLineOP.BytesInBuffer);
}
}
}
// Boundary isn't specified, read data to the stream end.
else{
MemoryStream ms = new MemoryStream();
stream.ReadAll(ms);
m_EncodedData = ms.ToArray();
}
}
return false;
}