diff --git a/src/libraries/System.Formats.Nrbf/System.Formats.Nrbf.sln b/src/libraries/System.Formats.Nrbf/System.Formats.Nrbf.sln index 6c983d2cb7293..b8742ac25c485 100644 --- a/src/libraries/System.Formats.Nrbf/System.Formats.Nrbf.sln +++ b/src/libraries/System.Formats.Nrbf/System.Formats.Nrbf.sln @@ -9,7 +9,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Nrbf", "src\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{32F1B10C-7A0C-440E-8F42-D5309D3D7DAA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Formats.Nrbf.Tests", "tests\System.Formats.Nrbf.Tests.csproj", "{8B45136F-C266-4FE7-B5A3-CFD6F3648289}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Nrbf.Tests", "tests\System.Formats.Nrbf.Tests.csproj", "{8B45136F-C266-4FE7-B5A3-CFD6F3648289}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D50A3723-4816-47D5-B6A2-E126D2F02722}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Formats.Nrbf", "ref\System.Formats.Nrbf.csproj", "{3415B821-490E-4B12-9A5F-135CAC6271B8}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -25,6 +29,10 @@ Global {8B45136F-C266-4FE7-B5A3-CFD6F3648289}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B45136F-C266-4FE7-B5A3-CFD6F3648289}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B45136F-C266-4FE7-B5A3-CFD6F3648289}.Release|Any CPU.Build.0 = Release|Any CPU + {3415B821-490E-4B12-9A5F-135CAC6271B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3415B821-490E-4B12-9A5F-135CAC6271B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3415B821-490E-4B12-9A5F-135CAC6271B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3415B821-490E-4B12-9A5F-135CAC6271B8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -32,6 +40,7 @@ Global GlobalSection(NestedProjects) = preSolution {E23A8E5A-9975-4ABE-BE54-B02328207F37} = {8721A077-F840-4316-9D8A-6E48B3D5EA03} {8B45136F-C266-4FE7-B5A3-CFD6F3648289} = {32F1B10C-7A0C-440E-8F42-D5309D3D7DAA} + {3415B821-490E-4B12-9A5F-135CAC6271B8} = {D50A3723-4816-47D5-B6A2-E126D2F02722} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {CC885ACA-F5FA-4CAA-BA5F-2517D39C3066} diff --git a/src/libraries/System.Formats.Nrbf/ref/System.Formats.Nrbf.cs b/src/libraries/System.Formats.Nrbf/ref/System.Formats.Nrbf.cs new file mode 100644 index 0000000000000..3e933a3871921 --- /dev/null +++ b/src/libraries/System.Formats.Nrbf/ref/System.Formats.Nrbf.cs @@ -0,0 +1,114 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// ------------------------------------------------------------------------------ +// Changes to this file must follow the https://aka.ms/api-review process. +// ------------------------------------------------------------------------------ + +namespace System.Formats.Nrbf +{ + public abstract partial class ArrayRecord : System.Formats.Nrbf.SerializationRecord + { + internal ArrayRecord() { } + public override System.Formats.Nrbf.SerializationRecordId Id { get { throw null; } } + public abstract System.ReadOnlySpan Lengths { get; } + public int Rank { get { throw null; } } + public System.Array GetArray(System.Type expectedArrayType, bool allowNulls=true) { throw null; } + } + public abstract partial class ClassRecord : System.Formats.Nrbf.SerializationRecord + { + internal ClassRecord() { } + public override System.Formats.Nrbf.SerializationRecordId Id { get { throw null; } } + public System.Collections.Generic.IEnumerable MemberNames { get { throw null; } } + public override System.Reflection.Metadata.TypeName TypeName { get { throw null; } } + public System.Formats.Nrbf.ArrayRecord? GetArrayRecord(string memberName) { throw null; } + public bool GetBoolean(string memberName) { throw null; } + public byte GetByte(string memberName) { throw null; } + public char GetChar(string memberName) { throw null; } + public System.Formats.Nrbf.ClassRecord? GetClassRecord(string memberName) { throw null; } + public System.DateTime GetDateTime(string memberName) { throw null; } + public decimal GetDecimal(string memberName) { throw null; } + public double GetDouble(string memberName) { throw null; } + public short GetInt16(string memberName) { throw null; } + public int GetInt32(string memberName) { throw null; } + public long GetInt64(string memberName) { throw null; } + public object? GetRawValue(string memberName) { throw null; } + public sbyte GetSByte(string memberName) { throw null; } + public System.Formats.Nrbf.SerializationRecord? GetSerializationRecord(string memberName) { throw null; } + public float GetSingle(string memberName) { throw null; } + public string? GetString(string memberName) { throw null; } + public System.TimeSpan GetTimeSpan(string memberName) { throw null; } + public ushort GetUInt16(string memberName) { throw null; } + public uint GetUInt32(string memberName) { throw null; } + public ulong GetUInt64(string memberName) { throw null; } + public bool HasMember(string memberName) { throw null; } + } + public static partial class NrbfDecoder + { + public static System.Formats.Nrbf.SerializationRecord Decode(System.IO.Stream payload, out System.Collections.Generic.IReadOnlyDictionary recordMap, System.Formats.Nrbf.PayloadOptions options=null, bool leaveOpen=false) { throw null; } + public static System.Formats.Nrbf.SerializationRecord Decode(System.IO.Stream payload, System.Formats.Nrbf.PayloadOptions? options=null, bool leaveOpen=false) { throw null; } + public static System.Formats.Nrbf.ClassRecord DecodeClassRecord(System.IO.Stream payload, System.Formats.Nrbf.PayloadOptions? options=null, bool leaveOpen=false) { throw null; } + public static bool StartsWithPayloadHeader(byte[] bytes) { throw null; } + public static bool StartsWithPayloadHeader(System.IO.Stream stream) { throw null; } + } + public sealed partial class PayloadOptions + { + public PayloadOptions() { } + public System.Reflection.Metadata.TypeNameParseOptions? TypeNameParseOptions { get { throw null; } set { } } + public bool UndoTruncatedTypeNames { get { throw null; } set { } } + } + public abstract partial class PrimitiveTypeRecord : System.Formats.Nrbf.SerializationRecord + { + internal PrimitiveTypeRecord() { } + public object Value { get { throw null; } } + } + public abstract partial class PrimitiveTypeRecord : System.Formats.Nrbf.PrimitiveTypeRecord + { + internal PrimitiveTypeRecord() { } + public override System.Reflection.Metadata.TypeName TypeName { get { throw null; } } + public new T Value { get { throw null; } } + } + public abstract partial class SerializationRecord + { + internal SerializationRecord() { } + public abstract System.Formats.Nrbf.SerializationRecordId Id { get; } + public abstract System.Formats.Nrbf.SerializationRecordType RecordType { get; } + public abstract System.Reflection.Metadata.TypeName TypeName { get; } + public bool TypeNameMatches(System.Type type) { throw null; } + } + public partial struct SerializationRecordId : System.IEquatable + { + public bool Equals(System.Formats.Nrbf.SerializationRecordId other) { throw null; } + public override bool Equals(object? obj) { throw null; } + public override int GetHashCode() { throw null; } + } + public enum SerializationRecordType + { + SerializedStreamHeader = 0, + ClassWithId = 1, + SystemClassWithMembers = 2, + ClassWithMembers = 3, + SystemClassWithMembersAndTypes = 4, + ClassWithMembersAndTypes = 5, + BinaryObjectString = 6, + BinaryArray = 7, + MemberPrimitiveTyped = 8, + MemberReference = 9, + ObjectNull = 10, + MessageEnd = 11, + BinaryLibrary = 12, + ObjectNullMultiple256 = 13, + ObjectNullMultiple = 14, + ArraySinglePrimitive = 15, + ArraySingleObject = 16, + ArraySingleString = 17, + MethodCall = 21, + MethodReturn = 22, + } + public abstract partial class SZArrayRecord : System.Formats.Nrbf.ArrayRecord + { + internal SZArrayRecord() { } + public int Length { get { throw null; } } + public override System.ReadOnlySpan Lengths { get { throw null; } } + public abstract T?[] GetArray(bool allowNulls = true); + } +} diff --git a/src/libraries/System.Formats.Nrbf/ref/System.Formats.Nrbf.csproj b/src/libraries/System.Formats.Nrbf/ref/System.Formats.Nrbf.csproj new file mode 100644 index 0000000000000..b42ee4914b74b --- /dev/null +++ b/src/libraries/System.Formats.Nrbf/ref/System.Formats.Nrbf.csproj @@ -0,0 +1,20 @@ + + + $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + false + + + + + + + + + + + + + + + + diff --git a/src/libraries/System.Formats.Nrbf/src/System/Formats/Nrbf/PrimitiveTypeRecord.cs b/src/libraries/System.Formats.Nrbf/src/System/Formats/Nrbf/PrimitiveTypeRecord.cs index 5da15420e31c6..39e0794658c63 100644 --- a/src/libraries/System.Formats.Nrbf/src/System/Formats/Nrbf/PrimitiveTypeRecord.cs +++ b/src/libraries/System.Formats.Nrbf/src/System/Formats/Nrbf/PrimitiveTypeRecord.cs @@ -22,6 +22,10 @@ namespace System.Formats.Nrbf; [DebuggerDisplay("{Value}")] public abstract class PrimitiveTypeRecord : SerializationRecord { + private protected PrimitiveTypeRecord() + { + } + /// /// Gets the serialized primitive value. ///