DataObjectCore<TDataObject>
using System.Diagnostics.CodeAnalysis;
using System.Private.Windows.Core.Resources;
using System.Runtime.CompilerServices;
namespace System.Private.Windows.Ole
{
internal static class DataObjectCore<TDataObject> where TDataObject : IComVisibleDataObject
{
[NullableContext(1)]
[RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.SerializeToUtf8Bytes<TValue>(TValue, JsonSerializerOptions)")]
internal static IJsonData TryJsonSerialize<[Nullable(2)] T>(string format, T data)
{
ArgumentException.ThrowIfNullOrWhiteSpace(format, "format");
ArgumentNullException.ThrowIfNull(data, "data");
if (DataFormatNames.IsPredefinedFormat(format))
throw new ArgumentException(System.Private.Windows.Core.Resources.SR.ClipboardOrDragDrop_CannotJsonSerializePredefinedFormat, "format");
if (typeof(T).IsAssignableTo(typeof(TDataObject)))
throw new ArgumentException(System.Private.Windows.Core.Resources.SR.ClipboardOrDragDrop_CannotJsonSerializeDataObject, "data");
return ((IJsonData)).Create<T>(data);
}
}
}