Example #1
0
        public string Get()
        {
            var actionPlugin = _pluginCatalog.Get("MyActionPlugin", Version.Parse("1.0.0.0"));
            var funcPlugin   = _pluginCatalog.Get("MyFuncPlugin", Version.Parse("1.0.0.0"));
            var funcExternalServicePlugin = _pluginCatalog.Get("MyExternalServicePlugin", Version.Parse("1.0.0.0"));

            dynamic action   = _sp.Create(actionPlugin);
            dynamic func     = _sp.Create(funcPlugin);
            dynamic external = _sp.Create(funcExternalServicePlugin);

            var s = new List <string>()
            {
                "Hello from controller"
            };

            action.Run(s);

            var result = func.Run(s);

            // Conversion rules are used to convert the func's string parameter into a property and to convert the ExternalService into a constructor parameter.
            external.S = result;
            result     = external.Run();

            return(result);
        }
        public async Task <string> Get()
        {
            var scriptPlugin = _pluginCatalog.GetPlugins().First();

            dynamic scriptInstance = Activator.CreateInstance(scriptPlugin);
            var     scriptResult   = await scriptInstance.Run();

            var typePlugin = _pluginCatalog.Get("MyPlugin", Version.Parse("1.5.0.0"));

            dynamic typeInstance = typePlugin.Create(_sp);

            var typeResult = typeInstance.RunThings();

            var result = new StringBuilder();

            result.AppendLine(scriptResult);
            result.AppendLine(typeResult);

            return(result.ToString());
        }