суббота, 15 ноября 2025 г.

GS.Trade, Alias Trade, Core.Trade

F:\Projects\VS\GS.TradeContext\GS.TradeContext.sln F:\Projects\VS\GS.TradeContext\GS.Trade.Data.Mappers\GS.Trade.Data.Mappers.csproj






Ошибка возникает из-за конфликта имени. Похоже, что в проекте существует пространство имен с именем Trade, и компилятор интерпретирует Trade как пространство имен, а не как класс. Вероятно, в каком-то месте проекта имеется следующее определение:

namespace GS.Trade {}

или

namespace Trade {}

Из-за этого компилятор запутывается и выдает ошибку CS0118.

Решение проблемы:

Нужно переименовать псевдоним для класса Trade, чтобы избежать конфликта с пространством имен. Вот исправленный код:

using GS.Trade.Abstractions;
using GS.Trade.Core;
using GS.Trade.Data.Entities;

// Назначение другого псевдонима для класса Trade
using TradeAlias = GS.Trade.Core.Trade;

namespace GS.Trade.Data.Mappers
{
    public static class TradeMappers
    {
        public static TradeEntity ToEntity(this TradeAlias t) => new TradeEntity
        {
            TradeNumber = t.TradeNumber,
            Ticker = t.Ticker,
            Price = t.Price,
            Qty = t.Qty,
            Side = t.Side.ToString(),
            DateTime = t.DateTime
        };
    }
}
-----
Или так
using Trade = GS.Trade.Core.Trade;

namespace GS.Trade.Data.Mappers
{
    public static class TradeMappers
    {
        // using TradeCore = GS.Trade.Core.Trade;
        // using Core = GS.Trade.Core;

        public static TradeEntity ToEntity(this Core.Trade t) => new TradeEntity
        {
            TradeNumber = t.TradeNumber,
            Ticker = t.Ticker,
            Price = t.Price,
            Qty = t.Qty,
            Side = t.Side.ToString(),
            DateTime = t.DateTime
        };

Комментариев нет:

Отправить комментарий