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

Update BsonMapper.Serialize.cs to correct Serialize interface #1923

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tivial19
Copy link

This changes will help to Serialize interfaces correct. Now it is working like this:
public interface IItemData
{
bool Auto { get; set; }
string Name { get; set; }
int Value { get; set; }
}

public class ItemData : IItemData
{
public bool Auto { get; set; }
public string Name { get; set; }
public int Value { get; set; }
public double DD { get; set; }
}

List Data = new List() { new ItemData(true, 87, "First", 111.111), new ItemData(false, 43, "Second", 222.222) };

using (var db = new LiteDatabase(DBname))
{
var Col = db.GetCollection(CollectionName);//here i can set interface type
Col.InsertBulk(Data);// and here i cannot set interface type and programm use type of object (BsonMapper.Serialize.cs - line 183(184))
}
And i get doc with all 4 fields Auto, Value, Name and DD, but i need only 3 like in interface.

This changes will help to Serialize interfaces correct. Now it is working like this:
    public interface IItemData
    {
        bool Auto { get; set; }
        string Name { get; set; }
        int Value { get; set; }
    }

public class ItemData : IItemData
    {
        public bool Auto { get; set; }
        public string Name { get; set; }
        public int Value { get; set; }
        public double DD { get; set; } 
}
           

List<IItemData> Data = new List<IItemData>() { new ItemData(true, 87, "First", 111.111), new ItemData(false, 43, "Second", 222.222) };

 using (var db = new LiteDatabase(DBname))
                {
                    var Col = db.GetCollection<IItemData>(CollectionName);//here i can set interface type
                    Col.InsertBulk(Data);// and here i cannot set interface type and programm use type of object (BsonMapper.Serialize.cs - line 183(184))
                }
And i get doc with all 4 fields Auto, Value, Name and DD, but i need only 3 like in interface.
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

Successfully merging this pull request may close these issues.

1 participant