mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-07-09 15:39:00 +00:00
wip
This commit is contained in:
parent
7cc0f8a67d
commit
a9d72dee4e
@ -40,6 +40,10 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
/// The intermediate deserialization object
|
/// The intermediate deserialization object
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected TIntermediateType? _intermediateType;
|
protected TIntermediateType? _intermediateType;
|
||||||
|
/// <summary>
|
||||||
|
/// Runtime type model
|
||||||
|
/// </summary>
|
||||||
|
protected RuntimeTypeModel _model;
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public bool IsValid { get; set; }
|
public bool IsValid { get; set; }
|
||||||
@ -48,19 +52,20 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
public abstract bool OriginalDataAvailable { get; }
|
public abstract bool OriginalDataAvailable { get; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public object? Underlying => throw new NotImplementedException();
|
public object? Underlying => _intermediateType;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ctor
|
/// ctor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProtobufMessageAccessor()
|
public ProtobufMessageAccessor(RuntimeTypeModel model)
|
||||||
{
|
{
|
||||||
|
_model = model;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public NodeType? GetNodeType()
|
public NodeType? GetNodeType()
|
||||||
{
|
{
|
||||||
throw new Exception("");
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -82,7 +87,9 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
else if (step.Type == 1)
|
else if (step.Type == 1)
|
||||||
{
|
{
|
||||||
// property value
|
// property value
|
||||||
|
#pragma warning disable IL2075 // Type is already annotated
|
||||||
value = value.GetType().GetProperty(step.Property!)?.GetValue(value);
|
value = value.GetType().GetProperty(step.Property!)?.GetValue(value);
|
||||||
|
#pragma warning restore
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -136,7 +143,9 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
else if (step.Type == 1)
|
else if (step.Type == 1)
|
||||||
{
|
{
|
||||||
// property value
|
// property value
|
||||||
|
#pragma warning disable IL2075 // Type is already annotated
|
||||||
value = value.GetType().GetProperty(step.Property!)?.GetValue(value);
|
value = value.GetType().GetProperty(step.Property!)?.GetValue(value);
|
||||||
|
#pragma warning restore
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -150,8 +159,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public T?[]? GetValues<T>(MessagePath path)
|
public T?[]? GetValues<T>(MessagePath path)
|
||||||
{
|
{
|
||||||
throw new Exception("");
|
throw new NotImplementedException();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -161,6 +169,10 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
public abstract void Clear();
|
public abstract void Clear();
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
public abstract CallResult<object> Deserialize(
|
public abstract CallResult<object> Deserialize(
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
[DynamicallyAccessedMembers(
|
[DynamicallyAccessedMembers(
|
||||||
@ -181,10 +193,13 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
Type type, MessagePath? path = null);
|
Type type, MessagePath? path = null);
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public abstract CallResult<T> Deserialize<
|
|
||||||
|
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
[DynamicallyAccessedMembers(
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
|
public abstract CallResult<T> Deserialize<
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[DynamicallyAccessedMembers(
|
||||||
#if NET8_0_OR_GREATER
|
#if NET8_0_OR_GREATER
|
||||||
DynamicallyAccessedMemberTypes.NonPublicConstructors |
|
DynamicallyAccessedMemberTypes.NonPublicConstructors |
|
||||||
DynamicallyAccessedMemberTypes.PublicFields |
|
DynamicallyAccessedMemberTypes.PublicFields |
|
||||||
@ -232,11 +247,15 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// ctor
|
/// ctor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProtobufStreamMessageAccessor(): base()
|
public ProtobufStreamMessageAccessor(RuntimeTypeModel model) : base(model)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
public override CallResult<object> Deserialize(
|
public override CallResult<object> Deserialize(
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
[DynamicallyAccessedMembers(
|
[DynamicallyAccessedMembers(
|
||||||
@ -258,7 +277,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var result = Serializer.Deserialize(type, _stream);
|
var result = _model.Deserialize(type, _stream);
|
||||||
return new CallResult<object>(result);
|
return new CallResult<object>(result);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -268,6 +287,10 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
public override CallResult<T> Deserialize<
|
public override CallResult<T> Deserialize<
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
[DynamicallyAccessedMembers(
|
[DynamicallyAccessedMembers(
|
||||||
@ -289,7 +312,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var result = Serializer.Deserialize<T>(_stream);
|
var result = _model.Deserialize<T>(_stream);
|
||||||
return new CallResult<T>(result);
|
return new CallResult<T>(result);
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch(Exception ex)
|
||||||
@ -320,7 +343,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_intermediateType = Serializer.Deserialize<TIntermediate>(_stream);
|
_intermediateType = _model.Deserialize<TIntermediate>(_stream);
|
||||||
IsValid = true;
|
IsValid = true;
|
||||||
return Task.FromResult(CallResult.SuccessResult);
|
return Task.FromResult(CallResult.SuccessResult);
|
||||||
}
|
}
|
||||||
@ -328,7 +351,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
{
|
{
|
||||||
// Not a json message
|
// Not a json message
|
||||||
IsValid = false;
|
IsValid = false;
|
||||||
return Task.FromResult(new CallResult(new DeserializeError("JsonError: " + ex.Message, ex)));
|
return Task.FromResult(new CallResult(new DeserializeError("ProtoBufError: " + ex.Message, ex)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,11 +403,15 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// ctor
|
/// ctor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProtobufByteMessageAccessor() : base()
|
public ProtobufByteMessageAccessor(RuntimeTypeModel model) : base(model)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
public override CallResult<object> Deserialize(
|
public override CallResult<object> Deserialize(
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
[DynamicallyAccessedMembers(
|
[DynamicallyAccessedMembers(
|
||||||
@ -408,7 +435,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
{
|
{
|
||||||
using var stream = new MemoryStream(_bytes.ToArray());
|
using var stream = new MemoryStream(_bytes.ToArray());
|
||||||
stream.Position = 0;
|
stream.Position = 0;
|
||||||
var result = Serializer.Deserialize(type, stream);
|
var result = _model.Deserialize(type, stream);
|
||||||
return new CallResult<object>(result);
|
return new CallResult<object>(result);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -418,6 +445,10 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
public override CallResult<T> Deserialize<
|
public override CallResult<T> Deserialize<
|
||||||
[DynamicallyAccessedMembers(
|
[DynamicallyAccessedMembers(
|
||||||
@ -441,7 +472,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var result = Serializer.Deserialize<T>(_bytes);
|
var result = _model.Deserialize<T>(_bytes);
|
||||||
return new CallResult<T>(result);
|
return new CallResult<T>(result);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -457,7 +488,7 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_intermediateType = Serializer.Deserialize<TIntermediate>(data);
|
_intermediateType = _model.Deserialize<TIntermediate>(data);
|
||||||
IsValid = true;
|
IsValid = true;
|
||||||
return CallResult.SuccessResult;
|
return CallResult.SuccessResult;
|
||||||
}
|
}
|
||||||
|
@ -9,17 +9,21 @@ namespace CryptoExchange.Net.Converters.Protobuf
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public class ProtobufMessageSerializer : IByteMessageSerializer
|
public class ProtobufMessageSerializer : IByteMessageSerializer
|
||||||
{
|
{
|
||||||
private readonly RuntimeTypeModel _model = RuntimeTypeModel.Create("CryptoExchange");
|
private RuntimeTypeModel _model;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ctor
|
/// ctor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ProtobufMessageSerializer()
|
public ProtobufMessageSerializer(RuntimeTypeModel model)
|
||||||
{
|
{
|
||||||
_model.UseImplicitZeroDefaults = false;
|
_model = model;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
#if NET5_0_OR_GREATER
|
#if NET5_0_OR_GREATER
|
||||||
public byte[] Serialize<
|
public byte[] Serialize<
|
||||||
[DynamicallyAccessedMembers(
|
[DynamicallyAccessedMembers(
|
||||||
|
@ -29,6 +29,9 @@
|
|||||||
<None Include="..\CryptoExchange.Net\Icon\icon.png" Pack="true" PackagePath="\" />
|
<None Include="..\CryptoExchange.Net\Icon\icon.png" Pack="true" PackagePath="\" />
|
||||||
<None Include="README.md" Pack="true" PackagePath="\" />
|
<None Include="README.md" Pack="true" PackagePath="\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="AOT" Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net7.0'))">
|
||||||
|
<IsAotCompatible>true</IsAotCompatible>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Deterministic Build" Condition="'$(Configuration)' == 'Release'">
|
<PropertyGroup Label="Deterministic Build" Condition="'$(Configuration)' == 'Release'">
|
||||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
<IncludeSymbols>true</IncludeSymbols>
|
<IncludeSymbols>true</IncludeSymbols>
|
||||||
@ -39,6 +42,9 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<DocumentationFile>CryptoExchange.Net.Protobuf.xml</DocumentationFile>
|
<DocumentationFile>CryptoExchange.Net.Protobuf.xml</DocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="protobuf-net" Version="3.2.52" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\CryptoExchange.Net\CryptoExchange.Net.csproj" />
|
<ProjectReference Include="..\CryptoExchange.Net\CryptoExchange.Net.csproj" />
|
||||||
|
@ -14,6 +14,11 @@
|
|||||||
The intermediate deserialization object
|
The intermediate deserialization object
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1._model">
|
||||||
|
<summary>
|
||||||
|
Runtime type model
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1.IsValid">
|
<member name="P:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1.IsValid">
|
||||||
<inheritdoc />
|
<inheritdoc />
|
||||||
</member>
|
</member>
|
||||||
@ -23,7 +28,7 @@
|
|||||||
<member name="P:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1.Underlying">
|
<member name="P:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1.Underlying">
|
||||||
<inheritdoc />
|
<inheritdoc />
|
||||||
</member>
|
</member>
|
||||||
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1.#ctor">
|
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageAccessor`1.#ctor(ProtoBuf.Meta.RuntimeTypeModel)">
|
||||||
<summary>
|
<summary>
|
||||||
ctor
|
ctor
|
||||||
</summary>
|
</summary>
|
||||||
@ -60,7 +65,7 @@
|
|||||||
<member name="P:CryptoExchange.Net.Converters.Protobuf.ProtobufStreamMessageAccessor`1.OriginalDataAvailable">
|
<member name="P:CryptoExchange.Net.Converters.Protobuf.ProtobufStreamMessageAccessor`1.OriginalDataAvailable">
|
||||||
<inheritdoc />
|
<inheritdoc />
|
||||||
</member>
|
</member>
|
||||||
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufStreamMessageAccessor`1.#ctor">
|
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufStreamMessageAccessor`1.#ctor(ProtoBuf.Meta.RuntimeTypeModel)">
|
||||||
<summary>
|
<summary>
|
||||||
ctor
|
ctor
|
||||||
</summary>
|
</summary>
|
||||||
@ -85,7 +90,7 @@
|
|||||||
Protobuf byte message accessor
|
Protobuf byte message accessor
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufByteMessageAccessor`1.#ctor">
|
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufByteMessageAccessor`1.#ctor(ProtoBuf.Meta.RuntimeTypeModel)">
|
||||||
<summary>
|
<summary>
|
||||||
ctor
|
ctor
|
||||||
</summary>
|
</summary>
|
||||||
@ -111,7 +116,7 @@
|
|||||||
<member name="T:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageSerializer">
|
<member name="T:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageSerializer">
|
||||||
<inheritdoc />
|
<inheritdoc />
|
||||||
</member>
|
</member>
|
||||||
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageSerializer.#ctor">
|
<member name="M:CryptoExchange.Net.Converters.Protobuf.ProtobufMessageSerializer.#ctor(ProtoBuf.Meta.RuntimeTypeModel)">
|
||||||
<summary>
|
<summary>
|
||||||
ctor
|
ctor
|
||||||
</summary>
|
</summary>
|
||||||
|
@ -17,6 +17,7 @@ using CryptoExchange.Net.Testing.Implementations;
|
|||||||
using CryptoExchange.Net.SharedApis;
|
using CryptoExchange.Net.SharedApis;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using CryptoExchange.Net.Converters.SystemTextJson;
|
using CryptoExchange.Net.Converters.SystemTextJson;
|
||||||
|
using System.Net.WebSockets;
|
||||||
|
|
||||||
namespace CryptoExchange.Net.UnitTests.TestImplementations
|
namespace CryptoExchange.Net.UnitTests.TestImplementations
|
||||||
{
|
{
|
||||||
@ -98,7 +99,7 @@ namespace CryptoExchange.Net.UnitTests.TestImplementations
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected internal override IByteMessageAccessor CreateAccessor() => new SystemTextJsonByteMessageAccessor(new System.Text.Json.JsonSerializerOptions());
|
protected internal override IByteMessageAccessor CreateAccessor(WebSocketMessageType type) => new SystemTextJsonByteMessageAccessor(new System.Text.Json.JsonSerializerOptions());
|
||||||
protected internal override IMessageSerializer CreateSerializer() => new SystemTextJsonMessageSerializer(new System.Text.Json.JsonSerializerOptions());
|
protected internal override IMessageSerializer CreateSerializer() => new SystemTextJsonMessageSerializer(new System.Text.Json.JsonSerializerOptions());
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
@ -16,7 +16,6 @@ using CryptoExchange.Net.RateLimiting;
|
|||||||
using CryptoExchange.Net.RateLimiting.Interfaces;
|
using CryptoExchange.Net.RateLimiting.Interfaces;
|
||||||
using CryptoExchange.Net.Requests;
|
using CryptoExchange.Net.Requests;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using ProtoBuf;
|
|
||||||
|
|
||||||
namespace CryptoExchange.Net.Clients
|
namespace CryptoExchange.Net.Clients
|
||||||
{
|
{
|
||||||
|
@ -52,7 +52,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.6" />
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.6" />
|
||||||
<PackageReference Include="protobuf-net" Version="3.2.52" />
|
|
||||||
<PackageReference Include="System.Text.Json" Version="9.0.6" />
|
<PackageReference Include="System.Text.Json" Version="9.0.6" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Label="Transitive Client Packages">
|
<ItemGroup Label="Transitive Client Packages">
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using CryptoExchange.Net.Objects;
|
using CryptoExchange.Net.Objects;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -59,12 +60,20 @@ namespace CryptoExchange.Net.Interfaces
|
|||||||
/// <param name="type"></param>
|
/// <param name="type"></param>
|
||||||
/// <param name="path"></param>
|
/// <param name="path"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
CallResult<object> Deserialize(Type type, MessagePath? path = null);
|
CallResult<object> Deserialize(Type type, MessagePath? path = null);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Deserialize the message into this type
|
/// Deserialize the message into this type
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="path"></param>
|
/// <param name="path"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2092:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2095:RequiresUnreferencedCode", Justification = "JsonSerializerOptions provided here has TypeInfoResolver set")]
|
||||||
|
#endif
|
||||||
CallResult<T> Deserialize<T>(MessagePath? path = null);
|
CallResult<T> Deserialize<T>(MessagePath? path = null);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -480,6 +480,14 @@ namespace CryptoExchange.Net.Sockets
|
|||||||
_logger.FailedToParse(SocketId, result.Error!.Message);
|
_logger.FailedToParse(SocketId, result.Error!.Message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Valid: " + accessor.Underlying);
|
||||||
|
}
|
||||||
|
catch (Exception) { }
|
||||||
|
}
|
||||||
|
|
||||||
// 3. Determine the identifying properties of this message
|
// 3. Determine the identifying properties of this message
|
||||||
var listenId = ApiClient.GetListenerIdentifier(accessor);
|
var listenId = ApiClient.GetListenerIdentifier(accessor);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user