public static void DispatchEvent( BrowserEventDescriptor eventDescriptor, string eventArgsJson) { var eventArgs = ParseEventArgsJson(eventDescriptor.EventArgsType, eventArgsJson); var browserRenderer = BrowserRendererRegistry.Find(eventDescriptor.BrowserRendererId); browserRenderer.DispatchBrowserEvent( eventDescriptor.ComponentId, eventDescriptor.EventHandlerId, eventArgs); }
// We receive the information as JSON strings because of current interop limitations: // - Can't pass unboxed value types from JS to .NET (yet all the IDs are ints) // - Can't pass more than 4 args from JS to .NET // This can be simplified in the future when the Mono WASM runtime is enhanced. public static void DispatchEvent(string eventDescriptorJson, string eventArgsJson) { var eventDescriptor = Json.Deserialize <BrowserEventDescriptor>(eventDescriptorJson); var eventArgs = ParseEventArgsJson(eventDescriptor.EventArgsType, eventArgsJson); var browserRenderer = BrowserRendererRegistry.Find(eventDescriptor.BrowserRendererId); browserRenderer.DispatchBrowserEvent( eventDescriptor.ComponentId, eventDescriptor.ReferenceTreeFrameIndex, eventArgs); }
/// <summary> /// Constructs an instance of <see cref="BrowserRenderer"/>. /// </summary> /// <param name="serviceProvider">The <see cref="IServiceProvider"/> to use when initializing components.</param> public BrowserRenderer(IServiceProvider serviceProvider) : base(serviceProvider) { _browserRendererId = BrowserRendererRegistry.Add(this); }
/// <summary> /// Disposes the instance. /// </summary> public void Dispose() { BrowserRendererRegistry.TryRemove(_browserRendererId); }
/// <summary> /// Constructs an instance of <see cref="BrowserRenderer"/>. /// </summary> public BrowserRenderer() { _browserRendererId = BrowserRendererRegistry.Add(this); }