Example #1
0
        private IEnumerable <RemoteClientPlugin> FetchRemotePluginsImpl()
        {
            foreach (var file in Directory.GetFiles(Application.StartupPath + "\\plugins\\client"))

            {
                if (!file.GetFileName().ToLower().Contains("plugin"))
                {
                    continue;
                }
                if (!file.GetFileName().EndsWith(".dll"))
                {
                    continue;
                }
                var fileBuff     = File.ReadAllBytes(file);
                var asm          = Assembly.LoadFile(file);
                var attribute    = (GuidAttribute)asm.GetCustomAttributes(typeof(GuidAttribute), true)[0];
                var remotePlugin = new RemoteClientPlugin(file, fileBuff, HashHelper.CalculateSha256(fileBuff))
                {
                    PluginGuid = new Guid(attribute.Value)
                };
                remotePlugin.AssociatedServerPluginHost =
                    LoadedPlugins.First(p => p.PluginHost.AssociatedClientPlugin.Equals(new Guid(attribute.Value)));
                yield return(remotePlugin);
            }
        }
Example #2
0
        private IEnumerable<RemoteClientPlugin> FetchRemotePluginsImpl()
        {
            foreach (var file in Directory.GetFiles(Application.StartupPath + "\\plugins\\client"))

            {
                if (!file.GetFileName().ToLower().Contains("plugin"))
                    continue;
                if (!file.GetFileName().EndsWith(".dll"))
                    continue;
                var fileBuff = File.ReadAllBytes(file);
                 var asm = Assembly.LoadFile(file);
                var attribute = (GuidAttribute)asm.GetCustomAttributes(typeof(GuidAttribute), true)[0];
                var remotePlugin = new RemoteClientPlugin(file, fileBuff, HashHelper.CalculateSha256(fileBuff))
                {
                    PluginGuid = new Guid(attribute.Value)
                };
                remotePlugin.AssociatedServerPluginHost =
                    LoadedPlugins.First(p => p.PluginHost.AssociatedClientPlugin.Equals(new Guid(attribute.Value)));
                yield return remotePlugin;
            }
        }