Exemplo n.º 1
0
        static async Task QueryAndTestPlugins(IPluginServerControlAsync pluginHost)
        {
            var tasks = new List <Task>();

            foreach (var(uri, qualifiedName) in await pluginHost.EnumerateEndPointsAsync())
            {
                if (qualifiedName == typeof(IPlugin).AssemblyQualifiedName)
                {
                    var plugin = await ConnectAsync <IPluginAsync>(uri);

                    tasks.Add(TestPlugin(plugin));
                }
            }
            await Task.WhenAll(tasks);
        }
Exemplo n.º 2
0
        static async Task LoadPluginAssemblyAndListPlugins(IPluginServerControlAsync pluginHost)
        {
            await pluginHost.LoadPluginAssemblyAsync(typeof(TestPlugin.Plugin1).Assembly.Location);

            var availablePlugins = await pluginHost.EnumerateAvailablePluginsAsync();

            Console.WriteLine("Available plugins");
            foreach (var plugin in availablePlugins)
            {
                Console.WriteLine($"{plugin.ServiceName}:");
                Console.WriteLine($"Implementation: {plugin.ImplementationName}");
                Console.WriteLine("Contracts:");
                foreach (var contrct in plugin.Contracts)
                {
                    Console.WriteLine($"    {contrct.ContractInterfaceName}");
                    Console.WriteLine($"    Endpoints:");
                    foreach (var endpoint in contrct.EndPoints)
                    {
                        Console.WriteLine($"        {endpoint}");
                    }
                }
                Console.WriteLine();
            }
        }