示例#1
0
        /// <summary>
        /// Find a plugin descriptor by some type which is located into the same assembly as plugin
        /// </summary>
        /// <param name="typeInAssembly">Type</param>
        /// <returns>Plugin descriptor if exists; otherwise null</returns>
        public static PluginDescriptor FindPlugin(Type typeInAssembly)
        {
            if (typeInAssembly == null)
            {
                throw new ArgumentNullException(nameof(typeInAssembly));
            }

            return(ReferencedPlugins?.FirstOrDefault(plugin => plugin.ReferencedAssembly != null &&
                                                     plugin.ReferencedAssembly.FullName.Equals(typeInAssembly.Assembly.FullName, StringComparison.InvariantCultureIgnoreCase)));
        }
示例#2
0
        /// <summary>
        /// 查找某一类型对应的插件描述信息
        /// </summary>
        /// <param name="typeInAssembly"></param>
        /// <returns></returns>
        public static PluginDescriptor FindPlugin(Type typeInAssembly)
        {
            Check.NotNull(typeInAssembly, nameof(typeInAssembly));

            if (ReferencedPlugins == null)
            {
                return(null);
            }

            return(ReferencedPlugins.FirstOrDefault(plugin => plugin.ReferencedAssembly != null &&
                                                    plugin.ReferencedAssembly.FullName.Equals(typeInAssembly.Assembly.FullName, StringComparison.InvariantCultureIgnoreCase)));
        }
示例#3
0
        /// <summary>
        /// Find a plugin descriptor by some type which is located into the same assembly as plugin
        /// </summary>
        /// <param name="typeInAssembly">Type</param>
        /// <returns>Plugin descriptor if exists; otherwise null</returns>
        public static PluginDescriptor FindPlugin(Type typeInAssembly)
        {
            if (typeInAssembly == null)
            {
                throw new ArgumentNullException("typeInAssembly");
            }

            if (ReferencedPlugins == null)
            {
                return(null);
            }

            return(ReferencedPlugins.FirstOrDefault(plugin => plugin.ReferencedAssembly != null &&
                                                    plugin.ReferencedAssembly.FullName.Equals(typeInAssembly.GetTypeInfo().Assembly.FullName, StringComparison.OrdinalIgnoreCase)));
        }