-
Notifications
You must be signed in to change notification settings - Fork 11
Description
We would eventually like to support in-process variants of all the interactive classes in this wrapper, but right now we have some general structure that would need to change to make this easier.
The start of this process can be seen in the branch: https://github.com/KristofferStrube/Blazor.MediaCaptureStreams/tree/feature/in-process-classes
The primary problem is when we want a class to be an extension of multiple classes. An example could be MediaStreamTrackInProcess
, the in-process variant of MediaStreamTrack
. We would like to have this be an extension of MediaStreamTrack
and EventTargetInProcess
but we can't do this. A way to come around this is using ✨interfaces✨. We have tried to start this by making an interface for EventTargetInProcess
called IEventTargetInProcess
. The problem with this is that we then have to implement all the methods from that interface still. What we would really like is multiple inheritances of implementations similar to interface mixins from the WebIDL standard. What we have tried to mitigate how much code we need to duplicate is to have the implementations be in separate static methods that can be used in all implementations of the IEventTargetInProcess
interface. But that doesn't really solve the problem itself.