Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проекты с разными версиями Дот Нета / 16 сообщений из 16, страница 1 из 1
24.11.2021, 08:02
    #40114420
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Добрый день,

Пытаюсь воссоздать код из этого линка (первый пример):
https://bornsql.ca/blog/using-the-xero-oauth-2-0-api-from-a-net-core-console-application/

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        public async Task<XeroOAuth2Token> RefreshToken(string clientId, Xero.NetStandard.OAuth2.Config.XeroConfiguration config)
        {
            var handler = new SocketsHttpHandler();
            var httpClient = new HttpClient(handler, false);
            //var xeroToken = TokenUtilities.GetStoredToken(); replace with DB read 
            var xeroToken = GetXeroToken(clientId);
            //var utcTimeNow = DateTime.UtcNow;
            var client = new XeroClient(config, httpClient);
            xeroToken = (XeroOAuth2Token)await client.RefreshAccessTokenAsync(xeroToken);
           // TokenUtilities.StoreToken(xeroToken); replace with DB store
            return xeroToken;
        }



Выходит ошибка:
"Error CS0246 The type or namespace name 'SocketsHttpHandler' could not be found (are you missing a using directive or an assembly reference?)"

Этот пример заточен на .Net Core 3.1.

Попытался создать отдельный проект на .Net Core 3.1 и поместить туда код выше. При ссылке на этот проект выходит другая ошибка:
"Error Project '..\myproject2.csproj' targets 'netcoreapp3.1'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.7.2'. myproject1"

Как сделать так, чтобы 'SocketsHttpHandler' работал на .NETFramework 4.7.2?

Спасибо.
...
Рейтинг: 0 / 0
24.11.2021, 11:39
    #40114468
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Читаем еще раз:

авторThe type or namespace name 'SocketsHttpHandler' could not be found (are you missing a using directive or an assembly reference ?)"

и исправляем
...
Рейтинг: 0 / 0
24.11.2021, 22:38
    #40114711
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Ролг Хупин
Читаем еще раз:

авторThe type or namespace name 'SocketsHttpHandler' could not be found (are you missing a using directive or an assembly reference ?)"


и исправляем

Хороший совет. Вот только как это исправить на .Net Framework 4.7.2? На .Net Core 3.1 все прекрасно работает.
...
Рейтинг: 0 / 0
25.11.2021, 09:56
    #40114753
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Roust_m,
SocketsHttpHandler отсутствует в NetFramework.
...
Рейтинг: 0 / 0
25.11.2021, 10:18
    #40114759
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
vb_sub
Roust_m,
SocketsHttpHandler отсутствует в NetFramework.


А есть эквивалент? Или может nuget какой-нибудь подгрузить?

Идея заключается в том, чтобы создать http клиент в консольном приложении и получить токен:
"you now need an HttpClient to call the API to refresh tokens using the RefreshAccessTokenAsync() method."

Идиотизм, конечно, но по другому эта API не работает.
...
Рейтинг: 0 / 0
25.11.2021, 11:25
    #40114785
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Roust_m
vb_sub
Roust_m,
SocketsHttpHandler отсутствует в NetFramework.


А есть эквивалент? Или может nuget какой-нибудь подгрузить?

Идея заключается в том, чтобы создать http клиент в консольном приложении и получить токен:
"you now need an HttpClient to call the API to refresh tokens using the RefreshAccessTokenAsync() method."

Идиотизм, конечно, но по другому эта API не работает.


А так:
NET Framework app+NET Standard project (+SocketsHttpHandler ) ?
...
Рейтинг: 0 / 0
25.11.2021, 11:32
    #40114789
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Roust_m
vb_sub
Roust_m,
SocketsHttpHandler отсутствует в NetFramework.


А есть эквивалент? Или может nuget какой-нибудь подгрузить?

Идея заключается в том, чтобы создать http клиент в консольном приложении и получить токен:
"you now need an HttpClient to call the API to refresh tokens using the RefreshAccessTokenAsync() method."

Идиотизм, конечно, но по другому эта API не работает.

Вроде либа RestSharp довольно популярна, но сам не пользовался.
...
Рейтинг: 0 / 0
25.11.2021, 11:57
    #40114802
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
https://www.youtube.com/watch?v=Y9QfF0OsYLc&t=3686s
...
Рейтинг: 0 / 0
26.11.2021, 03:18
    #40115094
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Ролг Хупин
Roust_m
пропущено...


А есть эквивалент? Или может nuget какой-нибудь подгрузить?

Идея заключается в том, чтобы создать http клиент в консольном приложении и получить токен:
"you now need an HttpClient to call the API to refresh tokens using the RefreshAccessTokenAsync() method."

Идиотизм, конечно, но по другому эта API не работает.


А так:
NET Framework app+NET Standard project (+SocketsHttpHandler ) ?


Такой опции у меня нет. А как .Net Standard добавить в Visual Studio? Пытался гуглить и загрузить его, не нашел. Попробовал создать проект на .Net 5.0, полезли десятки ошибок в существующем коде.
...
Рейтинг: 0 / 0
26.11.2021, 12:24
    #40115201
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Roust_m
Ролг Хупин
пропущено...


А так:
NET Framework app+NET Standard project (+SocketsHttpHandler ) ?


Такой опции у меня нет. А как .Net Standard добавить в Visual Studio? Пытался гуглить и загрузить его, не нашел. Попробовал создать проект на .Net 5.0, полезли десятки ошибок в существующем коде.


Это кто писал?
"Идея заключается в том, чтобы создать http клиент в консольном приложении " ?

К приложению добавить новый прожект типа NET Standard
...
Рейтинг: 0 / 0
26.11.2021, 14:32
    #40115270
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Ролг Хупин
Roust_m
пропущено...


Такой опции у меня нет. А как .Net Standard добавить в Visual Studio? Пытался гуглить и загрузить его, не нашел. Попробовал создать проект на .Net 5.0, полезли десятки ошибок в существующем коде.


Это кто писал?
"Идея заключается в том, чтобы создать http клиент в консольном приложении " ?

К приложению добавить новый прожект типа NET Standard


Вот по этой ссылке написали:
https://bornsql.ca/blog/using-the-xero-oauth-2-0-api-from-a-net-core-console-application/
Идея в том, что вендор (Xero) поменял способ аутентификации на OAuth2. Причем сделал это крайне криво, видимо полагая, что консольными приложениями щас больше не пользуются. Поэтому обновить токен можно только создав http клиент.

Нет у меня такой опции (NET Standard).
...
Рейтинг: 0 / 0
27.11.2021, 14:11
    #40115505
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Пока сделал так:
Install-Package StandardSocketsHttpHandler -Version 2.2.0.3
В самом коде:
Код: c#
1.
2.
using System.Net.Http;
var handler = new StandardSocketsHttpHandler();



Компилируется без ошибок, полностью проверить не могу, ибо застрял на другом куске программы.
...
Рейтинг: 0 / 0
27.11.2021, 15:06
    #40115512
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Roust_m
Пока сделал так:
Install-Package StandardSocketsHttpHandler -Version 2.2.0.3
В самом коде:
Код: c#
1.
2.
using System.Net.Http;
var handler = new StandardSocketsHttpHandler();



Компилируется без ошибок, полностью проверить не могу, ибо застрял на другом куске программы.



Как-то странно, зачем було мутить всю эту тему? Вы могли бы это сделать сразу же.
...
Рейтинг: 0 / 0
27.11.2021, 16:05
    #40115518
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Ролг Хупин
Как-то странно, зачем було мутить всю эту тему? Вы могли бы это сделать сразу же.

В составе пакета, скорее всего, уже была версия для .Net framework, просто сначала она осталась незамеченной.
...
Рейтинг: 0 / 0
28.11.2021, 14:18
    #40115675
Roust_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Ролг Хупин
Roust_m
Пока сделал так:
Install-Package StandardSocketsHttpHandler -Version 2.2.0.3
В самом коде:
Код: c#
1.
2.
using System.Net.Http;
var handler = new StandardSocketsHttpHandler();



Компилируется без ошибок, полностью проверить не могу, ибо застрял на другом куске программы.



Как-то странно, зачем було мутить всю эту тему? Вы могли бы это сделать сразу же.


На момент открытия темы, я не знал про такое решение.
...
Рейтинг: 0 / 0
28.11.2021, 15:04
    #40115686
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проекты с разными версиями Дот Нета
Roust_m
Как сделать так, чтобы 'SocketsHttpHandler' работал на .NETFramework 4.7.2?

Никак. Попробуй заменить на HttpClientHandler или WebRequestHandler.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проекты с разными версиями Дот Нета / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]