Начинаю изучать Си-Шарп, прошу помощи. В существующий проект C# под VS 2017, добавил файл, скопировав его с файла из проекта, с переименованием соответствующих имён. В обоих файлах (и других тоже) указано пространство имён в директиве using. Так вот, первоначальный файл нормально видится (его переменные), а переменные нового файла не видны. Что я ещё не сделал?
Сообщение отредактировал Hadjamal - Понедельник, 29 Октября 2018, 07:00
Ты как-то плохо объяснил. Есть подозрение, что в новом файле или другое пространство имен, которые ты не прописал в using файла, где ты используешь вещи из него или вообще он не подключен к проекту. Объясни поподробнее, что значит не видно, где не видно. Содержание файла бы не помешала с содержанием файла(одно) из которого ты пытаешься вызвать переменную ненайденого класса
Объясни поподробнее, что значит не видно, где не видно. Содержание файла бы
Вот у меня в обозревателе помещены два файла в одном пространстве:
Вот содержимое подвопросного файла "ExmoWrapper.cs":
using CoinTNet.Common.Constants; using CoinTNet.DO; using CoinTNet.DO.Exchanges; using CoinTNet.DO.Security; using System; using System.Collections.Specialized; using System.Configuration; using System.Linq;
namespace CoinTNet.DAL.Exchanges { class ExmoWrapper : Interfaces.IExchange { #region private members private ExmoAPI.ExmoProxy _proxy; #endregion
public ExmoWrapper() { var p = SecureStorage.GetEncryptedData<ExmoAPIParams>(SecuredDataKeys.ExmoAPI); NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("CoinTNet"); string baseUrl = string.Empty; if (section != null && section.Count > 0) { baseUrl = section["exmo.APIBaseUrl"]; }
_proxy = new ExmoAPI.ExmoProxy(baseUrl, p.ClientID, p.APIKey, p.APISecret); }
public ExmoAPI.ExmoProxy ExmoProxy { get { return _proxy; } }
public CallResult<Ticker> GetTicker(CurrencyPair pair) { return CallProxy(() => _proxy.GetTicker(), t => new Ticker { Ask = t.Ask, Bid = t.Bid, High = t.High, Low = t.Low, Last = t.Last }); }
public CallResult<Balance> GetBalance(CurrencyPair pair) { return CallProxy(() => _proxy.GetBalance(), b => { var bal = new Balance(); bal.Balances[pair.Item1] = b.AvailableBTC; bal.Balances[pair.Item2] = b.AvailableUSD; return bal; }); }
public CallResult<OrderDetails> PlaceSellOrder(decimal amount, decimal price, CurrencyPair pair) { return CallProxy(() => _proxy.PlaceSellOrder(amount, price), o => new OrderDetails { Amount = o.Amount, DateTime = o.DateTime, Id = o.Id, Price = o.Price, Type = o.Type == 0 ? OrderType.Buy : OrderType.Sell }); }
public CallResult<OrderDetails> PlaceBuyOrder(decimal amount, decimal price, CurrencyPair pair) { return CallProxy(() => _proxy.PlaceBuyOrder(amount, price), o => new OrderDetails { Amount = o.Amount, DateTime = o.DateTime, Id = o.Id, Price = o.Price, Type = o.Type == 0 ? OrderType.Buy : OrderType.Sell });
}
public CallResult<TransactionList> GetTransactions(bool lastMin, CurrencyPair pair) { return CallProxy(() => _proxy.GetTransactions(lastMin), tlist => new TransactionList { Transactions = tlist.Transactions.Select((t => new DO.Exchanges.Transaction { Amount = t.Amount, Price = t.Price,
ID = t.ID, Timestamp = t.Timestamp, Date = t.Date })).ToList() }); }
public CallResult<OrderBook> GetOrderBook(CurrencyPair pair) { return CallProxy(() => _proxy.GetOrderBook(), o => new OrderBook { Asks = o.Asks.Select(a => new SimpleOrderInfo { Amount = a.Amount, Price = a.Price }).ToList(),
у ExmoAPI тоже стоит namespace CoinTNet.DAL.Exchanges ?
Э..э, - здесь я не понял... О чём речь? Как понять? Это листинг файла "ExmoWrapper.cs", первоначальный - "CoinTNet\DAL\Exchanges>BitstampWrapper.cs", с поправкой на то - что "словечки типа "Exmo" у него - "Bitstamp". "Using" проставлено изначально как "CoinTNet.DO.Exchanges", и у него всё работает. Я вижу в этом расхождение - ".DO." с ".DAL.", имеет ли это значение? Вы об этом?
Здесь я затрудняюсь: по ходу пьесы у меня файл "ExmoWrapper.cs", а файла "ExmoAPI" у меня нет. если хочешь - вот источник, там дополнительно файл "CoinTNet\DAL\Exchanges\ExmoWrapper.cs" и "CoinTNet\DO\Security\ExmoAPIParams.cs". Ещё добавлен проект "CointTNet\CoinTNet-master\libraries\ExmoAPI\*" с кучей файлов, и он, опять-же - копия "*\BitstampAPI\*" с подменой переменных с "Bitstamp" на "Exmo". Что ты имеешь в виду?
Я про это говорю, если у тебя ошибка именно с этим классом, то нужно смотреть на него. Ну я как понял, он в отдельной библиотеки, значит проблема именно в том, что ты неправильно подключил библиотеку или вообще не подключил