コード例 #1
0
        /// <summary>
        /// Determines whether the Plugin has the given capability.
        /// This is derived from the implemented interfaces. I.e. when the Interface IMessageSource is implemented,
        /// the Plugin has the capability MessageSource.
        /// </summary>
        /// <param name="capability">The capability to check.</param>
        /// <returns>true if the plugin can do the given task, false if not.</returns>
        /// <exception cref="ArgumentOutOfRangeException">The given capability was not known to this function.</exception>
        public bool HasCapability(PluginCapability capability)
        {
            switch (capability)
            {
            case PluginCapability.MessageSource:
                return(GetType().GetInterface("IMessageSource") != null);

            case PluginCapability.MessageSink:
                return(GetType().GetInterface("IMessageSink") != null);

            case PluginCapability.FreetextSource:
                return(GetType().GetInterface("IFreetextSource") != null);

            case PluginCapability.FreetextSink:
                return(GetType().GetInterface("IFreetextSink") != null);

            case PluginCapability.TriggerMessageSource:
                return(GetType().GetInterface("ITriggerMessageSource") != null);

            case PluginCapability.TriggerMessageSink:
                return(GetType().GetInterface("ITriggerMessageSink") != null);

            case PluginCapability.TriggerRequestSource:
                return(GetType().GetInterface("ITriggerRequestSource") != null);

            case PluginCapability.TriggerRequestSink:
                return(GetType().GetInterface("ITriggerRequestSink") != null);

            default:
                throw new ArgumentOutOfRangeException("capability");
            }
        }
コード例 #2
0
        /// <summary>
        /// Determines whether the Plugin has the given capability.
        /// This is derived from the implemented interfaces. I.e. when the Interface IMessageSource is implemented,
        /// the Plugin has the capability MessageSource.
        /// </summary>
        /// <param name="capability">The capability to check.</param>
        /// <returns>true if the plugin can do the given task, false if not.</returns>
        /// <exception cref="ArgumentOutOfRangeException">The given capability was not known to this function.</exception>
        public bool HasCapability(PluginCapability capability)
        {
            switch (capability)
            {
                case PluginCapability.MessageSource:
                    return GetType().GetInterface("IMessageSource") != null;
                    
                case PluginCapability.MessageSink:
                    return GetType().GetInterface("IMessageSink") != null;
                    
                case PluginCapability.FreetextSource:
                    return GetType().GetInterface("IFreetextSource") != null;
                    
                case PluginCapability.FreetextSink:
                    return GetType().GetInterface("IFreetextSink") != null;
                    
                case PluginCapability.TriggerMessageSource:
                    return GetType().GetInterface("ITriggerMessageSource") != null;
                    
                case PluginCapability.TriggerMessageSink:
                    return GetType().GetInterface("ITriggerMessageSink") != null;

                case PluginCapability.TriggerRequestSource:
                    return GetType().GetInterface("ITriggerRequestSource") != null;

                case PluginCapability.TriggerRequestSink:
                    return GetType().GetInterface("ITriggerRequestSink") != null;

                default:
                    throw new ArgumentOutOfRangeException("capability");
            }
        }