У меня проблема с MongoDriver. У меня есть унаследованный класс из Class1 репозитория mongo для Class1. Например:MongoDriver Deserialization
public class Class1: EntityBase
{
[BsonElement("a")]
public A Attr { get; set; }
}
public class Class2: Class1
{
[BsonElement("d")]
public IList<float> D{ get; set; }
[BsonElement("p")]
public int P{ get; set; }
[BsonElement("s")]
public int S{ get; set; }
}
И у меня есть несколько проектов в моем решении. У меня есть проект с репозиториями, где расположены классы. Когда я пытаюсь вставить и загрузить экземпляр класса 2 в первый проект, так что все в порядке. Но когда я пытаюсь сделать то же самое в другом:
Element 'd' does not match any field or property of class Class1.
Оба проекта относятся к проекту репозитория (dll). Что может быть неправильным?
Попробуйте добавить '[BsonIgnoreExtraElements]' на 'Class1'. – Donut
Я исправляю свою проблему с атрибутом '[BsonKnownTypes]' на 'Class1'. Причина, по которой она работает в одном проекте, а не в другом, проста. Рабочий использует унаследованный тип, поэтому он регистрирует его. Второй проект не может и не может десериализоваться на неизвестный тип. – wolen
Рад, что вы смогли это решить! Можете ли вы опубликовать ответ на свой вопрос, чтобы другие, у которых может быть одна и та же проблема, могли более легко увидеть, как вы его исправили? – Donut