Доступ к внутренней функции класса в C#C#

Место общения программистов C#
Ответить
Гость
 Доступ к внутренней функции класса в C#

Сообщение Гость »


Я пытаюсь создать консольное приложение, в котором мне нужно использовать данную dll и использовать в них классы. Я пытаюсь получить доступ к общедоступному классу, но имеющему внутренний конструктор. Я не уверен, как получить к нему доступ и использовать его функциональность. Я новичок в C#. Возможно, мне не хватает какой-то концепции.

Данный класс:

пространство имен tt_net_sdk { Публичный класс PositionStatistics { частная десятичная сумма TotalBuyPrice_; частная десятичная buyPosition_; частный int fillCount_; частное десятичное значение TotalSellPrice_; частная десятичная позиция SellPosition_; общедоступная десятичная дробь BuyAveragePrice { получать { если (!(buyPosition_ > 0m)) { возврат 0м; } вернуть totalBuyPrice_/buyPosition_; } } общедоступная десятичная BuyPosition => buyPosition_; public int FillCount => fillCount_; общедоступная десятичная NetPosition => buyPosition_ - SellPosition_; общедоступная десятичная система SellAveragePrice { получать { если (!(sellPosition_ > 0m)) { возврат 0м; } вернуть totalSellPrice_/sellPosition_; } } общедоступная десятичная SellPosition => SellPosition_; внутренняя статистика позиции() { totalBuyPrice_ = по умолчанию (десятичный); buyPosition_ = по умолчанию (десятичный); fillCount_ = 0; totalSellPrice_ = по умолчанию (десятичный); SellPosition_ = по умолчанию (десятичный); } внутренняя PositionStatistics (десятичная buyAveragePrice, десятичная buyPosition, int fillCount, десятичная SellAveragePrice, десятичная SellPosition) { TotalBuyPrice_ = buyAveragePrice; buyPosition_ = buyPosition; fillCount_ = fillCount; TotalSellPrice_ = SellAveragePrice; SellPosition_ = SellPosition; } внутренняя PositionStatistics(Другое PositionStatistics) { totalBuyPrice_ = Other.totalBuyPrice_; buyPosition_ = Other.buyPosition_; fillCount_ = другое.fillCount_; totalSellPrice_ = Other.totalSellPrice_; SellPosition_ = Other.sellPosition_; } внутренняя пустота Очистить() { totalBuyPrice_ = по умолчанию (десятичный); buyPosition_ = по умолчанию (десятичный); fillCount_ = 0; totalSellPrice_ = по умолчанию (десятичный); SellPosition_ = по умолчанию (десятичный); } внутренняя пустота AddFill (сторона BuySell, десятичное количество, десятичная totalFillPrice) { if (сторона == BuySell.Buy) { buyPosition_ += количество; TotalBuyPrice_ += TotalFillPrice; } еще { SellPosition_ += количество; totalSellPrice_ += totalFillPrice; } fillCount_++; } внутренняя пустота AdjustFill (сторона BuySell, десятичное значение oldQuantity, десятичное значение oldTotalFillPrice, десятичное значение newQuantity, десятичное значение newTotalFillPrice) { if (сторона == BuySell.Buy) { buyPosition_ -= oldQuantity; totalBuyPrice_ -= oldTotalFillPrice; buyPosition_ += newQuantity; totalBuyPrice_ += newTotalFillPrice; } еще { SellPosition_ -= oldQuantity; totalSellPrice_ -= oldTotalFillPrice; SellPosition_ += новоеКоличество; totalSellPrice_ += newTotalFillPrice; } fillCount_++; } внутренняя пустота RemoveFill (сторона BuySell, десятичное количество, десятичное значение totalFillPrice) { if (сторона == BuySell.Buy) { buyPosition_ -= количество; TotalBuyPrice_ -= TotalFillPrice; } еще { SellPosition_ -= количество; TotalSellPrice_ -= TotalFillPrice; } fillCount_--; } общедоступная строка переопределения ToString() { return $"b:{BuyPosition}@{BuyAveragePrice} S:{SellPosition}@{SellAveragePrice} F:{FillCount} NetPos:{NetPosition}"; } } } Я пытаюсь:

tt_net_sdk.PositionStatistics ps = new tt_net_sdk.PositionStatistics(); // выдает ошибку Я также пробовал:

tt_net_sdk.PositionStatistics ps = (tt_net_sdk.PositionStatistics)typeof(tt_net_sdk.PositionStatistics).GetConstructor( BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null).Invoke(null); // дает неверный результат Но это не дает мне текущего результата. Возможно, этот класс используется в каком-то другом классе сборки.

Я также прилагаю документацию по API.

https://library.tradingtechnologies.com ... stics.html
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»