コード例 #1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        protected ISyntaxEmitter CreateMemberSyntaxEmitter(AbstractMember member)
        {
            if (member is FieldMember field)
            {
                return(new FieldSyntaxEmitter(field));
            }

            if (member is ConstructorMember constructor)
            {
                return(new ConstructorSyntaxEmitter(constructor));
            }

            if (member is MethodMember method)
            {
                return(new MethodSyntaxEmitter(method));
            }

            if (member is PropertyMember property)
            {
                return(new PropertySyntaxEmitter(property));
            }

            if (member is EventMember @event)
            {
                return(new EventSyntaxEmitter(@event));
            }

            if (member is TypeMember type)
            {
                return(TypeSyntaxEmitter.GetSyntaxEmitter(type));
            }

            throw new ArgumentException($"Syntax emitter is not supported for members of type {member.GetType().Name}");
        }