当前位置: 首页>>代码示例>>C#>>正文


C# ISerializationContext.Pop方法代码示例

本文整理汇总了C#中ISerializationContext.Pop方法的典型用法代码示例。如果您正苦于以下问题:C# ISerializationContext.Pop方法的具体用法?C# ISerializationContext.Pop怎么用?C# ISerializationContext.Pop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ISerializationContext的用法示例。


在下文中一共展示了ISerializationContext.Pop方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: icalendar

	public IICalendarCollection  icalendar(
		ISerializationContext ctx
	) //throws RecognitionException, TokenStreamException
{
		IICalendarCollection iCalendars = new iCalendarCollection();
		
		
		
			SerializationUtil.OnDeserializing(iCalendars);
		
			IICalendar iCal = null;
			ISerializationSettings settings = ctx.GetService(typeof(ISerializationSettings)) as ISerializationSettings;
		
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==CRLF||LA(1)==BEGIN))
				{
					{    // ( ... )*
						for (;;)
						{
							if ((LA(1)==CRLF))
							{
								match(CRLF);
							}
							else
							{
								goto _loop4_breakloop;
							}
							
						}
_loop4_breakloop:						;
					}    // ( ... )*
					match(BEGIN);
					match(COLON);
					match(VCALENDAR);
					{    // ( ... )*
						for (;;)
						{
							if ((LA(1)==CRLF))
							{
								match(CRLF);
							}
							else
							{
								goto _loop6_breakloop;
							}
							
						}
_loop6_breakloop:						;
					}    // ( ... )*
								
								ISerializationProcessor<IICalendar> processor = ctx.GetService(typeof(ISerializationProcessor<IICalendar>)) as ISerializationProcessor<IICalendar>;
								
								// Do some pre-processing on the calendar:
								if (processor != null)
									processor.PreDeserialization(iCal);
							
								iCal = (IICalendar)SerializationUtil.GetUninitializedObject(settings.iCalendarType);			
								SerializationUtil.OnDeserializing(iCal);
								
								// Push the iCalendar onto the serialization context stack
								ctx.Push(iCal);
							
					icalbody(ctx, iCal);
					match(END);
					match(COLON);
					match(VCALENDAR);
					{    // ( ... )*
						for (;;)
						{
							if ((LA(1)==CRLF) && (LA(2)==EOF||LA(2)==CRLF||LA(2)==BEGIN) && (tokenSet_0_.member(LA(3))))
							{
								match(CRLF);
							}
							else
							{
								goto _loop8_breakloop;
							}
							
						}
_loop8_breakloop:						;
					}    // ( ... )*
					
								// Do some final processing on the calendar:
								if (processor != null)
									processor.PostDeserialization(iCal);
							
								// Notify that the iCalendar has been loaded
								iCal.OnLoaded();
								iCalendars.Add(iCal);
								
								SerializationUtil.OnDeserialized(iCal);
								
								// Pop the iCalendar off the serialization context stack
								ctx.Pop();
							
				}
				else
				{
//.........这里部分代码省略.........
开发者ID:logikonline,项目名称:DDay.iCal,代码行数:101,代码来源:iCalParser.cs

示例2: parameter

	public ICalendarParameter  parameter(
		
	ISerializationContext ctx,
	ICalendarParameterCollectionContainer container

	) //throws RecognitionException, TokenStreamException
{
		ICalendarParameter p = null;;
		
		IToken  n = null;
		IToken  m = null;
		
			string v;
			List<string> values = new List<string>();
		
		
		{
			switch ( LA(1) )
			{
			case IANA_TOKEN:
			{
				n = LT(1);
				match(IANA_TOKEN);
				p = new CalendarParameter(n.getText());
				break;
			}
			case X_NAME:
			{
				m = LT(1);
				match(X_NAME);
				p = new CalendarParameter(m.getText());
				break;
			}
			default:
			{
				throw new NoViableAltException(LT(1), getFilename());
			}
			 }
		}
		
			// Push the parameter onto the serialization context stack
			ctx.Push(p);
		
		match(EQUAL);
		v=param_value();
		values.Add(v);
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==COMMA))
				{
					match(COMMA);
					v=param_value();
					values.Add(v);
				}
				else
				{
					goto _loop30_breakloop;
				}
				
			}
_loop30_breakloop:			;
		}    // ( ... )*
		
			p.SetValue(values);
			
			if (container != null)
			{
				container.Parameters.Add(p);
			}
			
			// Notify that the parameter has been loaded
			p.OnLoaded();
			
			// Pop the parameter off the serialization context stack
			ctx.Pop();
		
		return p;
	}
开发者ID:logikonline,项目名称:DDay.iCal,代码行数:79,代码来源:iCalParser.cs

示例3: property


//.........这里部分代码省略.........
						p = new CalendarProperty(m.getLine(), m.getColumn());
						p.Name = m.getText().ToUpper();
					
				break;
			}
			default:
			{
				throw new NoViableAltException(LT(1), getFilename());
			}
			 }
		}
		
			ISerializationProcessor<ICalendarProperty> processor = ctx.GetService(typeof(ISerializationProcessor<ICalendarProperty>)) as ISerializationProcessor<ICalendarProperty>;
			// Do some pre-processing on the property
			if (processor != null)
				processor.PreDeserialization(p);
		
			if (c != null)
			{
				// Add the property to the container, as the parent object(s)
				// may be needed during deserialization.
				c.Properties.Add(p);
			}
		
			// Push the property onto the serialization context stack
			ctx.Push(p);
			IStringSerializer dataMapSerializer = new DataMapSerializer(ctx);
		
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==SEMICOLON))
				{
					match(SEMICOLON);
					parameter(ctx, p);
				}
				else
				{
					goto _loop24_breakloop;
				}
				
			}
_loop24_breakloop:			;
		}    // ( ... )*
		match(COLON);
		v=value();
		
			// Deserialize the value of the property
			// into a concrete iCalendar data type,
			// a list of concrete iCalendar data types,
			// or string value.
			object deserialized = dataMapSerializer.Deserialize(new StringReader(v));
		if (deserialized != null)
		{
				// Try to determine if this is was deserialized as a *list*
				// of concrete types.
		Type targetType = dataMapSerializer.TargetType;
		Type listOfTargetType = typeof(IList<>).MakeGenericType(targetType);
		if (listOfTargetType.IsAssignableFrom(deserialized.GetType()))
		{
					// We deserialized a list - add each value to the
					// resulting object.
		foreach (var item in (IEnumerable)deserialized)
		p.AddValue(item);
		}
		else
		{
					// We deserialized a single value - add it to the object.
		p.AddValue(deserialized);
		}
		}
		
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==CRLF))
				{
					match(CRLF);
				}
				else
				{
					goto _loop26_breakloop;
				}
				
			}
_loop26_breakloop:			;
		}    // ( ... )*
		
			// Do some final processing on the property:
			if (processor != null)
				processor.PostDeserialization(p);
		
			// Notify that the property has been loaded
			p.OnLoaded();
			
			// Pop the property off the serialization context stack
			ctx.Pop();
		
		return p;
	}
开发者ID:logikonline,项目名称:DDay.iCal,代码行数:101,代码来源:iCalParser.cs

示例4: component


//.........这里部分代码省略.........
			default:
			{
				throw new NoViableAltException(LT(1), getFilename());
			}
			 }
		}
		
			ISerializationProcessor<ICalendarComponent> processor = ctx.GetService(typeof(ISerializationProcessor<ICalendarComponent>)) as ISerializationProcessor<ICalendarComponent>;
			// Do some pre-processing on the component
			if (processor != null)
				processor.PreDeserialization(c);
		
			SerializationUtil.OnDeserializing(c);
		
			// Push the component onto the serialization context stack
			ctx.Push(c);
		
			if (o != null)
			{
				// Add the component as a child immediately, in case
				// embedded components need to access this component,
				// or the iCalendar itself.
				o.AddChild(c); 
			}
			
			c.Line = n.getLine();
			c.Column = n.getColumn();
		
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==CRLF))
				{
					match(CRLF);
				}
				else
				{
					goto _loop16_breakloop;
				}
				
			}
_loop16_breakloop:			;
		}    // ( ... )*
		{    // ( ... )*
			for (;;)
			{
				switch ( LA(1) )
				{
				case IANA_TOKEN:
				case X_NAME:
				{
					property(ctx, c);
					break;
				}
				case BEGIN:
				{
					component(ctx, sf, cf, c);
					break;
				}
				default:
				{
					goto _loop18_breakloop;
				}
				 }
			}
_loop18_breakloop:			;
		}    // ( ... )*
		match(END);
		match(COLON);
		match(IANA_TOKEN);
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==CRLF))
				{
					match(CRLF);
				}
				else
				{
					goto _loop20_breakloop;
				}
				
			}
_loop20_breakloop:			;
		}    // ( ... )*
			
			// Do some final processing on the component
			if (processor != null)
				processor.PostDeserialization(c);
		
			// Notify that the component has been loaded
			c.OnLoaded();
			
			SerializationUtil.OnDeserialized(c);
			
			// Pop the component off the serialization context stack
			ctx.Pop();
		
		return c;
	}
开发者ID:logikonline,项目名称:DDay.iCal,代码行数:101,代码来源:iCalParser.cs

示例5: property


//.........这里部分代码省略.........
		
		
		{
			switch ( LA(1) )
			{
			case IANA_TOKEN:
			{
				n = LT(1);
				match(IANA_TOKEN);
				
						p = new CalendarProperty(n.getLine(), n.getColumn());
						p.Name = n.getText().ToUpper();
					
				break;
			}
			case X_NAME:
			{
				m = LT(1);
				match(X_NAME);
				
						p = new CalendarProperty(m.getLine(), m.getColumn());
						p.Name = m.getText().ToUpper();
					
				break;
			}
			default:
			{
				throw new NoViableAltException(LT(1), getFilename());
			}
			 }
		}
		
			ISerializationProcessor<ICalendarProperty> processor = ctx.GetService(typeof(ISerializationProcessor<ICalendarProperty>)) as ISerializationProcessor<ICalendarProperty>;
			// Do some pre-processing on the property
			if (processor != null)
				processor.PreDeserialization(p);
		
			if (c != null)
			{
				// Add the property to the container, as the parent object(s)
				// may be needed during deserialization.
				c.Properties.Add(p);
			}
		
			// Push the property onto the serialization context stack
			ctx.Push(p);
            IStringSerializer dataMapSerializer = new DataMapSerializer(ctx);
		
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==SEMICOLON))
				{
					match(SEMICOLON);
					parameter(ctx, p);
				}
				else
				{
					goto _loop24_breakloop;
				}
				
			}
_loop24_breakloop:			;
		}    // ( ... )*
		match(COLON);
		v=value();
		
			// Deserialize the value of the property
			// into a concrete iCalendar data type,
			// or string value.
            p.Value = dataMapSerializer.Deserialize(new StringReader(v));
		
		{    // ( ... )*
			for (;;)
			{
				if ((LA(1)==CRLF))
				{
					match(CRLF);
				}
				else
				{
					goto _loop26_breakloop;
				}
				
			}
_loop26_breakloop:			;
		}    // ( ... )*
		
			// Do some final processing on the property:
			if (processor != null)
				processor.PostDeserialization(p);
		
			// Notify that the property has been loaded
			p.OnLoaded();
			
			// Pop the property off the serialization context stack
			ctx.Pop();
		
		return p;
	}
开发者ID:Guymestef,项目名称:DDay.iCal,代码行数:101,代码来源:iCalParser.cs


注:本文中的ISerializationContext.Pop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。