public override IClassVisitor Extend(IClassVisitor visitor, IBytecodeBehaviorState state, IList <IBytecodeBehavior> remainingPendingBehaviors,
                                                 IList <IBytecodeBehavior> cascadePendingBehaviors)
            {
                // implement remaining properties and methods of abstractEntityType
                visitor = behavior.VisitType(visitor, state.CurrentType, cascadePendingBehaviors);

                return(visitor);
            }
            public override IClassVisitor Extend(IClassVisitor visitor, IBytecodeBehaviorState state, IList <IBytecodeBehavior> remainingPendingBehaviors,
                                                 IList <IBytecodeBehavior> cascadePendingBehaviors)
            {
                foreach (Type interfaceType in interfaceTypes)
                {
                    // implement interfaceType
                    visitor = behavior.VisitType(visitor, interfaceType, cascadePendingBehaviors);
                }
                cascadePendingBehaviors.Add(new InnerBehavior2(behavior));

                return(visitor);
            }