Возможный баг с System.ComponentModel.DataAnnotations;

maksgmn

Client
Регистрация
29.01.2016
Сообщения
204
Благодарностей
6
Баллы
18
Доброго времени суток, пытаюсь запустить код библиотеки Gate.io, успешно собрал с версией net 4.8 , получилось 5 dll файлов, все из них поместил в ExternalAssemblies:

83947

Теперь пробую запустить следующий код в кубике c#:

C#:
const string currencyPair = "BTC_USDT";
            string currency = currencyPair.Split('_')[1];

            // Setting basePath is optional. It defaults to https://api.gateio.ws/api/v4
            Configuration config = new Configuration {};
            var key1 = "1";
            var key2 = "2";
            config.SetGateApiV4KeyPair(key1, key2);
            SpotApi spotApi = new SpotApi(config);

            CurrencyPair pair = spotApi.GetCurrencyPair(currencyPair);
            Console.WriteLine("testing against currency pair: {0}", currencyPair);
            string minAmount = pair.MinQuoteAmount;
На выходе получается следующее:


C#:
Компиляция кода  Ошибка в действии "CS0012" "The type 'System.ComponentModel.DataAnnotations.IValidatableObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.". [Строка: 10; Cтолбец: 13]
Вот как выглядят ссылки из GAC, все библиотеки туда добавил:
83948

Код из "Директивы using и общий код, Общий код":

C#:
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;


using System.Collections.Generic;
using System.Diagnostics;
using Io.Gate.GateApi.Api;
using Io.Gate.GateApi.Client;
using Io.Gate.GateApi.Model;
using RestSharp;
using Newtonsoft;
using JsonSubTypes;
using System.Runtime;


namespace ZennoLab.OwnCode
{
    /// <summary>
    /// A simple class of the common code
    /// </summary>
    public class CommonCode
    {
        /// <summary>
        /// Lock this object to mark part of code for single thread execution
        /// </summary>
        public static object SyncObject = new object();
    }      
}
Код из "Директивы using и общий код, Директивы Using":

C#:
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
using System.Diagnostics;
using Io.Gate.GateApi.Api;
using Io.Gate.GateApi.Client;
using Io.Gate.GateApi.Model;
using RestSharp;
using Newtonsoft;
using JsonSubTypes;
Что не так не пойму ? Вроде добавлена библиотека DataAnnotations, в гугле эта проблема банально решается добавление библиотеки, здесь она есть, как решить этот момент ?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113

maksgmn

Client
Регистрация
29.01.2016
Сообщения
204
Благодарностей
6
Баллы
18
Зря, максимально допустимая версия для подключения к шаблону: 4.6.2 (как и сам постер).
Библиотека будет правильно работать, если ее собирать c net4.6>=
83950

Я пробовал это делать с net4.6, 4.6.1, net 4.6.2 - не работает, выдает каждый раз ошибку при сборке, можете сами попробовать при помощи dotnet build:

C#:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <TargetFramework>net4.6</TargetFramework>
    <AssemblyName>Io.Gate.GateApi</AssemblyName>
    <PackageId>Io.Gate.GateApi</PackageId>
    <OutputType>Library</OutputType>
    <Authors>Gate.io</Authors>
    <Company>Gate.io</Company>
    <AssemblyTitle>Gate API C# client library</AssemblyTitle>
    <Description>C# client SDK for Gate API</Description>
    <Copyright>No Copyright</Copyright>
    <RootNamespace>Io.Gate.GateApi</RootNamespace>
    <Version>4.22.2</Version>
    <DocumentationFile>bin\$(Configuration)\$(TargetFramework)\Io.Gate.GateApi.xml</DocumentationFile>
    <RepositoryUrl>https://github.com/gateio/gateapi-csharp.git</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageReleaseNotes>Refer to https://github.com/gateio/gateapi-csharp/releases</PackageReleaseNotes>
    <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="JsonSubTypes" Version="1.5.2" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
    <PackageReference Include="RestSharp" Version="106.10.1" />
    <PackageReference Include="System.ComponentModel.Annotations" Version="4.5.0" />
  </ItemGroup>

</Project>
Вообще она изначально у них в проекте собирается как <TargetFramework>netstandard2.0</TargetFramework>,
но как понимаю, в zennoposter этот фреймворк не будет работать.

Получается нет в принципе решения этого вопроса ? Остальной код работает проекта, единственная проблема это System.ComponentModel.DataAnnotations
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Библиотека будет правильно работать, если ее собирать c net4.6>=
Так это как раз означает net4.6 и выше.
Я пробовал это делать с net4.6, 4.6.1, net 4.6.2 - не работает, выдает каждый раз ошибку при сборке
Значит где-то ошибка, вы подтянули зависимости с Nuget?
Вообще она изначально у них в проекте собирается как <TargetFramework>netstandard2.0</TargetFramework>,
но как понимаю, в zennoposter этот фреймворк не будет работать.
Нет, так как он равен .net framework 4.8.
Получается нет в принципе решения этого вопроса ?
Только сборка под 4.6.2.
Это вариант возможно ещё работает, но есть ещё старая альтернатива от (и для) .net framework. Надо смотреть в студии, а лучше сразу делать в ней.
 

maksgmn

Client
Регистрация
29.01.2016
Сообщения
204
Благодарностей
6
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)