/// <summary>
            /// Compares two PluginDescriptor instances.
            /// </summary>
            /// <param name="x"></param>
            /// <param name="y"></param>
            /// <returns></returns>
            public int Compare(object x, object y)
            {
                PluginDescriptor xDescriptor = (PluginDescriptor)x;
                PluginDescriptor yDescriptor = (PluginDescriptor)y;

                //Log.WriteLine(xDescriptor.ToString() + " == " + yDescriptor.ToString());

                if (xDescriptor == yDescriptor)
                {
                    return(0);
                }

                // the opposite of the MostDependentComparer class
                bool xDependsOnY = xDescriptor.DependsOn(yDescriptor);
                bool yDependsOnX = yDescriptor.DependsOn(xDescriptor);

                if (xDependsOnY)
                {
                    return(1);
                }
                else if (yDependsOnX)
                {
                    return(-1);
                }
                else
                {
                    return(0);
                }
            }
            /// <summary>
            /// Compares two PluginDescriptor instances.
            /// </summary>
            /// <param name="x"></param>
            /// <param name="y"></param>
            /// <returns></returns>
            public int Compare(object x, object y)
            {
                PluginDescriptor xDescriptor = (PluginDescriptor)x;
                PluginDescriptor yDescriptor = (PluginDescriptor)y;

                if (xDescriptor == yDescriptor)
                {
                    return(0);
                }

                // the opposite of the LeastDependentComparer class
                bool xDependsOnY = xDescriptor.DependsOn(yDescriptor);
                bool yDependsOnX = yDescriptor.DependsOn(xDescriptor);

                if (xDependsOnY)
                {
                    return(-1);
                }
                else if (yDependsOnX)
                {
                    return(1);
                }
                else
                {
                    return(0);
                }
            }