/// <summary> /// Run a specific interface function. /// </summary> /// <typeparam name="T">Type of payload to pass along.</typeparam> /// <param name="function">Function to run.</param> /// <param name="payload">Payload to pass along to the run function.</param> public static void RunInterfaceFunction <T>(InterfaceFunction function, T payload) { switch (function) { // IFlimsyModule case InterfaceFunction.Module_RegisterRoutes: foreach (var cls in GetInterfaceClasses <IFlimsyModule>()) { var instance = Activator.CreateInstance(cls) as IFlimsyModule; if (instance == null) { throw new Exception( string.Format( "Could not create instance of {0}", cls.FullName)); } switch (function) { // RegisterRoutes case InterfaceFunction.Module_RegisterRoutes: instance.RegisterRoutes((dynamic)payload); break; } } break; case InterfaceFunction.Logger_NewEntry: // TODO !!! break; } }
public InterfaceFunctionView(InterfaceFunction function, InterfaceData owner) { this.owner = owner; this.function = function; title = $"{function.name}({ string.Join(", ", function.parameters.Select(p => p.type.DisplayName(false, false))) }) : {function.returnType.DisplayName(false, false)}"; titleIcon.image = uNodeEditorUtility.GetTypeIcon(typeof(TypeIcons.MethodIcon)); expandedElement.visible = false; }