//-------------------------------------------------------------------------------------------------------------------------------------------------

            public PropertySelector(ImplementationClassWriter <TBase> classWriter, params PropertyInfo[] selectedProperties)
            {
                m_OwnerClass         = classWriter.OwnerClass;
                m_ClassWriter        = classWriter;
                m_SelectedProperties = selectedProperties;
            }
            //-------------------------------------------------------------------------------------------------------------------------------------------------

            public EventSelector(ImplementationClassWriter <TBase> classWriter, params EventInfo[] selectedEvents)
            {
                m_OwnerClass     = classWriter.OwnerClass;
                m_ClassWriter    = classWriter;
                m_SelectedEvents = selectedEvents;
            }
            //-------------------------------------------------------------------------------------------------------------------------------------------------

            public PropertySelector(ImplementationClassWriter <TBase> classWriter, IEnumerable <PropertyInfo> selectedProperties)
                : this(classWriter, selectedProperties.ToArray())
            {
            }
            //-------------------------------------------------------------------------------------------------------------------------------------------------

            public EventSelector(ImplementationClassWriter <TBase> classWriter, IEnumerable <EventInfo> selectedEvents)
                : this(classWriter, selectedEvents.ToArray())
            {
            }