本文整理汇总了C#中ISerializationContext.Push方法的典型用法代码示例。如果您正苦于以下问题:C# ISerializationContext.Push方法的具体用法?C# ISerializationContext.Push怎么用?C# ISerializationContext.Push使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISerializationContext
的用法示例。
在下文中一共展示了ISerializationContext.Push方法的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
{
//.........这里部分代码省略.........
示例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;
}
示例3: property
public ICalendarProperty property(
ISerializationContext ctx,
ICalendarPropertyListContainer c
) //throws RecognitionException, TokenStreamException
{
ICalendarProperty p = null;;
IToken n = null;
IToken m = null;
string v;
{
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,
// 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
{
//.........这里部分代码省略.........
示例4: component
public ICalendarComponent component(
ISerializationContext ctx,
ISerializerFactory sf,
ICalendarComponentFactory cf,
ICalendarObject o
) //throws RecognitionException, TokenStreamException
{
ICalendarComponent c = null;;
IToken n = null;
IToken m = null;
match(BEGIN);
match(COLON);
{
switch ( LA(1) )
{
case IANA_TOKEN:
{
n = LT(1);
match(IANA_TOKEN);
c = cf.Build(n.getText().ToLower(), true);
break;
}
case X_NAME:
{
m = LT(1);
match(X_NAME);
c = cf.Build(m.getText().ToLower(), true);
break;
}
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: ;
} // ( ... )*
//.........这里部分代码省略.........
示例5: property
public ICalendarProperty property(
ISerializationContext ctx,
ICalendarPropertyListContainer c
) //throws RecognitionException, TokenStreamException
{
ICalendarProperty p = null;;
IToken n = null;
IToken m = null;
string v;
{
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: ;
} // ( ... )*
//.........这里部分代码省略.........