| File: System\Windows\Forms\Nrbf\WinFormsSerializationRecordExtensions.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Drawing; using System.Formats.Nrbf; using System.Private.Windows.Nrbf; namespace System.Windows.Forms.Nrbf; internal sealed partial class WinFormsNrbfSerializer { /// <summary> /// Tries to get a record as a binary formatted <see cref="ImageListStreamer"/>. /// </summary> private static bool TryGetImageListStreamer( SerializationRecord record, out object? imageListStreamer) { return SerializationRecordExtensions.TryGet(Get, record, out imageListStreamer); static bool Get(SerializationRecord record, [NotNullWhen(true)] out object? imageListStreamer) { imageListStreamer = null; if (record is not ClassRecord types || !types.TypeNameMatches(typeof(ImageListStreamer)) || !types.HasMember("Data") || types.GetRawValue("Data") is not SZArrayRecord<byte> data) { return false; } imageListStreamer = new ImageListStreamer(data.GetArray()); return true; } } /// <summary> /// Tries to get a record as a binary formatted <see cref="Bitmap"/>. /// </summary> private static bool TryGetBitmap(SerializationRecord record, out object? bitmap) { bitmap = null; if (record is not ClassRecord types || !types.TypeNameMatches(typeof(Bitmap)) || !types.HasMember("Data") || types.GetRawValue("Data") is not SZArrayRecord<byte> data) { return false; } bitmap = new Bitmap(new MemoryStream(data.GetArray())); return true; } }