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()); }