Bisher habe ich mir Folgendes ausgedacht. Ich habe eine Schnittstelle namens IImageCreator und alle Codecs werden in
instanziiert
Code: Select all
static readonly List _creators
Code: Select all
abstract class ImageCreator : IImageCreator
Code: Select all
sealed class SKBitmapImageCreator : ImageCreator {...}
sealed class WindowsBitmapImageCreator : ImageCreator {...}
Ich habe eine statische Methode zum Kodieren eines Bildes:
Code: Select all
static BlkImgDataSrc ToPortableImageSource(object imageObject)
{
_creators.Single(c => c.GetType().GetTypeInfo().IsAssignableFrom(imageObject.GetType().GetTypeInfo()));
Beachten Sie, dass imageObject von einem behandelten Typ wie SKBitmap sein wird
Ich hatte den Eindruck, dass dies die richtige Instanz zur Verarbeitung des imageObject basierend auf ableiten würde Dokumentation:
Code: Select all
Returns true if any of the following conditions is true:
(...)
c is a generic type parameter, and the current instance represents one of the constraints of c.
Mobile version