Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

exception Common Language Runtime detected an invalid program #35

Open
pavlexander opened this issue Dec 28, 2023 · 2 comments
Open

exception Common Language Runtime detected an invalid program #35

pavlexander opened this issue Dec 28, 2023 · 2 comments

Comments

@pavlexander
Copy link

for code

var dataBytes = BinaryConverter.Serialize(dataLong);

throws

System.InvalidProgramException: 'Common Language Runtime detected an invalid program.'

where SingleCandlestickLong

public class SingleCandlestickLong
{
    public long Id;
    public long OpenTimeTs;
    public DateTime OpenTime;
    public long Open;
    public long High;
    public long Low;
    public long Close;
    public long Volume;
    public long CloseTimeTs;
    public DateTime CloseTime;
    public long NumberOfTrades;
    public long NumberOfCandles;

    public SingleCandlestickLong()
    {

    }

    public SingleCandlestickLong(
        long id,
        long openTime,
        decimal open,
        decimal high,
        decimal low,
        decimal close,
        decimal volume,
        long closeTime,
        long numberOfTrades,
        long numberOfCandles)
    {
        Id = id;

        OpenTimeTs = openTime;
        OpenTime = openTime.ToDTFromUnixMilliseconds();

        Open = open.DecimalToLong();
        High = high.DecimalToLong();
        Low = low.DecimalToLong();
        Close = close.DecimalToLong();
        Volume = volume.DecimalToLong();

        CloseTimeTs = closeTime;
        CloseTime = closeTime.ToDTFromUnixMilliseconds();

        NumberOfTrades = numberOfTrades;
        NumberOfCandles = numberOfCandles;
    }

    public SingleCandlestickLong(
        long id,
        long openTime,
        long open,
        long high,
        long low,
        long close,
        long volume,
        long closeTime,
        long numberOfTrades,
        long numberOfCandles)
    {
        Id = id;

        OpenTimeTs = openTime;
        OpenTime = openTime.ToDTFromUnixMilliseconds();

        Open = open;
        High = high;
        Low = low;
        Close = close;
        Volume = volume;

        CloseTimeTs = closeTime;
        CloseTime = closeTime.ToDTFromUnixMilliseconds();

        NumberOfTrades = numberOfTrades;
        NumberOfCandles = numberOfCandles;
    }
}
@pavlexander
Copy link
Author

changed all fields to properties - same error. what am I doing wrong?

@pavlexander
Copy link
Author

pavlexander commented Dec 28, 2023

OK I think I have figured it out.. the lib does not support lists it seems, e.g. following will not work

        var model = new MyModel2();
        var dataBytes2 = BinaryConverter.Serialize(model);

works

        var model = new MyModel2();
        var listOfModels = new List<MyModel2>() { model };
        var dataBytes2 = BinaryConverter.Serialize(listOfModels);

I think the error is misleading.. It should mention at least that the ienumerable types are not supported, if this is a feature and not a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant