public override bool Enter(IObjectDescriptor value, IEmitter context) { if (value.Value != null) { var alias = aliasProvider.GetAlias(value.Value); if (!alias.IsEmpty && !emittedAliases.Add(alias)) { var aliasEventInfo = new AliasEventInfo(value, alias); eventEmitter.Emit(aliasEventInfo, context); return(aliasEventInfo.NeedsExpansion); } } return(base.Enter(value, context)); }
public override bool Enter(IObjectDescriptor value) { string alias = this.aliasProvider.GetAlias(value.Value); if ((alias == null) || this.emittedAliases.Add(alias)) { return(base.Enter(value)); } AliasEventInfo eventInfo = new AliasEventInfo(value) { Alias = alias }; this.eventEmitter.Emit(eventInfo); return(false); }
public override void Emit(AliasEventInfo eventInfo, IEmitter emitter) { eventInfo.NeedsExpansion = true; }
public override void Emit(AliasEventInfo eventInfo) { throw new NotSupportedException("Aliases are not supported in JSON"); }
public virtual void Emit(AliasEventInfo eventInfo) { nextEmitter.Emit(eventInfo); }
public virtual void Emit(AliasEventInfo eventInfo, IEmitter emitter) { nextEmitter.Emit(eventInfo, emitter); }
void IEventEmitter.Emit(AliasEventInfo eventInfo, IEmitter emitter) { emitter.Emit(new AnchorAlias(eventInfo.Alias)); }
void IEventEmitter.Emit(AliasEventInfo eventInfo) { emitter.Emit(new AnchorAlias(eventInfo.Alias)); }
void IEventEmitter.Emit(AliasEventInfo eventInfo) { this.emitter.Emit(new AnchorAlias(eventInfo.Alias)); }