コード例 #1
0
        public IMasterMethod CreateMasterMethodInstance(string methodName)
        {
            var           currentNamespace = GetType().Namespace;
            var           fullMethodName   = $"{currentNamespace}.{_masterNamespaceSuffix}.{methodName}, {currentNamespace}";
            var           type             = Type.GetType(fullMethodName);
            IMasterMethod methodInstance   = (IMasterMethod)Activator.CreateInstance(type);

            return(methodInstance);
        }
コード例 #2
0
        private Task SendToAgents(MasterStep step, IList <IRpcClient> clients)
        {
            try
            {
                var method     = step.GetMethod();
                var parameters = step.Parameters;

                // Create instance
                IMasterMethod methodInstance = _plugin.CreateMasterMethodInstance(method);

                // Do action
                return(methodInstance.Do(parameters, _plugin.PluginMasterParameters, clients));
            }
            catch (Exception ex)
            {
                var message = $"Fail to handle step: {ex}";
                Log.Error(message);
                throw;
            }
        }