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));
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 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 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);
 }
 public virtual void Emit(AliasEventInfo eventInfo)
 {
     nextEmitter.Emit(eventInfo);
 }
 void IEventEmitter.Emit(AliasEventInfo eventInfo, IEmitter emitter)
 {
     emitter.Emit(new AnchorAlias(eventInfo.Alias));
 }
		void IEventEmitter.Emit(AliasEventInfo eventInfo)
		{
			emitter.Emit(new AnchorAlias(eventInfo.Alias));
		}
Beispiel #11
0
 public virtual void Emit(AliasEventInfo eventInfo, IEmitter emitter)
 {
     nextEmitter.Emit(eventInfo, emitter);
 }
Beispiel #12
0
 void IEventEmitter.Emit(AliasEventInfo eventInfo)
 {
     this.emitter.Emit(new AnchorAlias(eventInfo.Alias));
 }